This commit is contained in:
root 2019-08-30 19:30:19 +02:00
commit 6f2b105ca0
595 changed files with 78405 additions and 0 deletions

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
.svn
# .project
Thumbs.db
.DS_Store*
# .settings
# .buildpath
*.pyc
.idea/
/log.txt
*.sublime-workspace
.c9

9
.gitmodules vendored Normal file
View File

@ -0,0 +1,9 @@
[submodule "js/jquery-colorpicker"]
path = js/jquery-colorpicker
url=git://github.com/aramk/colorpicker.git
[submodule "langs/ada"]
path = langs/ada
url = https://github.com/antiphasis/crayon-lang-ada.git
[submodule "langs/vbnet"]
path = langs/vbnet
url=https://github.com/NuGardt/crayon-lang-vbnet.git

View File

@ -0,0 +1,13 @@
{
"folders":
[
{
"follow_symlinks": true,
"path": ".",
"folder_exclude_patterns": [
"min",
"trans"
]
}
]
}

36
crayon_fonts.class.php Normal file
View File

@ -0,0 +1,36 @@
<?php
require_once ('global.php');
require_once (CRAYON_RESOURCE_PHP);
/* Manages fonts once they are loaded. */
class CrayonFonts extends CrayonUserResourceCollection {
// Properties and Constants ===============================================
const DEFAULT_FONT = 'monaco';
const DEFAULT_FONT_NAME = 'Monaco';
// Methods ================================================================
function __construct() {
$this->set_default(self::DEFAULT_FONT, self::DEFAULT_FONT_NAME);
$this->directory(CRAYON_FONT_PATH);
$this->relative_directory(CRAYON_FONT_DIR);
$this->extension('css');
CrayonLog::debug("Setting font directories");
$upload = CrayonGlobalSettings::upload_path();
if ($upload) {
$this->user_directory($upload . CRAYON_FONT_DIR);
if (!is_dir($this->user_directory())) {
CrayonGlobalSettings::mkdir($this->user_directory());
CrayonLog::debug($this->user_directory(), "FONT USER DIR");
}
} else {
CrayonLog::syslog("Upload directory is empty: " . $upload . " cannot load fonts.");
}
CrayonLog::debug($this->directory());
CrayonLog::debug($this->user_directory());
}
}
?>

633
crayon_formatter.class.php Normal file
View File

@ -0,0 +1,633 @@
<?php
require_once('global.php');
require_once(CRAYON_HIGHLIGHTER_PHP);
require_once(CRAYON_SETTINGS_PHP);
require_once(CRAYON_PARSER_PHP);
require_once(CRAYON_THEMES_PHP);
/* Manages formatting the html with html and css. */
class CrayonFormatter {
// Properties and Constants ===============================================
/* Used to temporarily store the array of CrayonElements passed to format_code(), so that
format_matches() can access them and identify which elements were captured and format
accordingly. This must be static for preg_replace_callback() to access it.*/
private static $elements = array();
// Delimiters
// Current crayon undergoing delimiter replace
private static $curr;
private static $delimiters;
private static $delim_regex;
private static $delim_pieces;
// Methods ================================================================
private function __construct() {
}
/* Formats the code using the parsed language elements. */
public static function format_code($code, $language, $hl = NULL) {
// Ensure the language is defined
if ($language != NULL && $hl->is_highlighted()) {
$code = self::clean_code($code, FALSE, FALSE, FALSE, TRUE);
/* Perform the replace on the code using the regex, pass the captured matches for
formatting before they are replaced */
try {
CrayonParser::parse($language->id());
// Match language regex
$elements = $language->elements();
$regex = $language->regex();
if (!empty($regex) && !empty($elements)) {
// Get array of CrayonElements
self::$elements = array_values($elements);
$code = preg_replace_callback($regex, 'CrayonFormatter::format_match', $code);
}
} catch (Exception $e) {
$error = 'An error occured when formatting: ' . $e->message();
$hl ? $hl->log($error) : CrayonLog::syslog($error);
}
return $code;
} else {
return self::clean_code($code, TRUE, TRUE, TRUE, TRUE);
}
}
/* Performs a replace to format each match based on the captured element. */
private static function format_match($matches) {
/* First index in $matches is full match, subsequent indices are groups.
* Minimum number of elements in array is 2, so minimum captured group is 0. */
$captured_group_number = count($matches) - 2;
$code = $matches[0];
if (array_key_exists($captured_group_number, self::$elements)) {
$captured_element = self::$elements[$captured_group_number];
// Avoid capturing and formatting internal Crayon elements
if ($captured_element->name() == CrayonParser::CRAYON_ELEMENT) {
return $code; // Return as is
} else {
// Separate lines and add css class, keep extended class last to allow overriding
$fallback_css = CrayonLangs::known_elements($captured_element->fallback());
$element_css = $captured_element->css();
$css = !empty($fallback_css) ? $fallback_css . ' ' . $element_css : $element_css;
return self::split_lines($code, $css);
}
} else {
// All else fails, return the match
return $matches[0];
}
}
/* Prints the formatted code, option to override the line numbers with a custom string */
public static function print_code($hl, $code, $line_numbers = TRUE, $print = TRUE) {
global $CRAYON_VERSION;
// We can print either block or inline, inline is treated differently, factor out common stuff here
$output = '';
// Used for style tag
$main_style = $code_style = $toolbar_style = $info_style = $font_style = $line_style = $pre_style = '';
// Unique ID for this instance of Crayon
$uid = 'crayon-' . $hl->id();
// Print theme id
// We make the assumption that the id is correct (checked in crayon_wp)
$theme_id = $hl->setting_val(CrayonSettings::THEME);
$theme_id_dashed = CrayonUtil::space_to_hyphen($theme_id);
if (!$hl->setting_val(CrayonSettings::ENQUEUE_THEMES)) {
$output .= CrayonResources::themes()->get_css($theme_id);
}
// Print font id
// We make the assumption that the id is correct (checked in crayon_wp)
$font_id = $hl->setting_val(CrayonSettings::FONT);
$font_id_dashed = CrayonUtil::space_to_hyphen($font_id);
if (!$hl->setting_val(CrayonSettings::ENQUEUE_FONTS)) {
$output .= CrayonResources::fonts()->get_css($font_id);
}
// Inline margin
if ($hl->is_inline()) {
$inline_margin = $hl->setting_val(CrayonSettings::INLINE_MARGIN) . 'px !important;';
}
// Determine font size
// TODO improve logic
if ($hl->setting_val(CrayonSettings::FONT_SIZE_ENABLE)) {
$_font_size = $hl->setting_val(CrayonSettings::FONT_SIZE);
$_font_size = $_font_size . 'px !important;';
$_line_height = $hl->setting_val(CrayonSettings::LINE_HEIGHT);
// Don't allow line height to be less than font size
$line_height = ($_line_height > $_font_size ? $_line_height : $_font_size) . 'px !important;';
$toolbar_height = $_font_size * 1.5 . 'px !important;';
$info_height = $_font_size * 1.4 . 'px !important;';
$font_style .= "font-size: $_font_size line-height: $line_height";
$toolbar_style .= "font-size: $_font_size";
$line_style .= "height: $line_height";
if ($hl->is_inline()) {
$font_style .= "font-size: $_font_size";
} else {
$toolbar_style .= "height: $toolbar_height line-height: $toolbar_height";
$info_style .= "min-height: $info_height line-height: $info_height";
}
} else if (!$hl->is_inline()) {
if (($_font_size = CrayonGlobalSettings::get(CrayonSettings::FONT_SIZE)) !== FALSE) {
$_font_size = $_font_size->def() . 'px !important;';
$line_height = ($_font_size * 1.4) . 'px !important;';
}
}
$tab = $hl->setting_val(CrayonSettings::TAB_SIZE);
$pre_style = "-moz-tab-size:$tab; -o-tab-size:$tab; -webkit-tab-size:$tab; tab-size:$tab;";
// This will return from function with inline print
if ($hl->is_inline()) {
$wrap = !$hl->setting_val(CrayonSettings::INLINE_WRAP) ? 'crayon-syntax-inline-nowrap' : '';
$output .= '
<span id="' . $uid . '" class="crayon-syntax crayon-syntax-inline ' . $wrap . ' crayon-theme-' . $theme_id_dashed . ' crayon-theme-' . $theme_id_dashed . '-inline crayon-font-' . $font_id_dashed . '" style="' . $font_style . '">' .
'<span class="crayon-pre crayon-code" style="' . $font_style . ' ' . $pre_style . '">' . $code . '</span>' .
'</span>';
return $output;
}
// Below code only for block (default) printing
// Generate the code lines and separate each line as a div
$print_code = '';
$print_nums = '';
$hl->line_count(preg_match_all("#(?:^|(?<=\r\n|\n))[^\r\n]*#", $code, $code_lines));
// The line number to start from
$start_line = $hl->setting_val(CrayonSettings::START_LINE);
$marking = $hl->setting_val(CrayonSettings::MARKING);
$striped = $hl->setting_val(CrayonSettings::STRIPED);
$range = $hl->setting_val(CrayonSettings::RANGES) ? $hl->range() : FALSE;
for ($i = 1; $i <= $hl->line_count(); $i++) {
// Check if the current line is in the range of code to display
if ($range) {
if ($i < $range[0]) {
continue;
} else if ($i > $range[1]) {
break;
}
}
$code_line = $code_lines[0][$i - 1];
// If line is blank, add a space so the div has the correct height
if ($code_line == '') {
$code_line = '&nbsp;';
}
// Check if the current line has been selected
$marked_lines = $hl->marked();
// Check if lines need to be marked as important
if ($marking && in_array($i, $marked_lines)) {
$marked_num = ' crayon-marked-num';
$marked_line = ' crayon-marked-line';
// If multiple lines are marked, only show borders for top and bottom lines
if (!in_array($i - 1, $marked_lines)) {
$marked_num .= ' crayon-top';
$marked_line .= ' crayon-top';
}
// Single lines are both the top and bottom of the multiple marked lines
if (!in_array($i + 1, $marked_lines)) {
$marked_num .= ' crayon-bottom';
$marked_line .= ' crayon-bottom';
}
} else {
$marked_num = $marked_line = '';
}
// Stripe odd lines
if ($striped && $i % 2 == 0) {
$striped_num = ' crayon-striped-num';
$striped_line = ' crayon-striped-line';
} else {
$striped_num = $striped_line = '';
}
// Generate the lines
$line_num = $start_line + $i - 1;
$line_id = $uid . '-' . $line_num;
$print_code .= '<div class="crayon-line' . $marked_line . $striped_line . '" id="' . $line_id . '">' . $code_line . '</div>';
if (!is_string($line_numbers)) {
$print_nums .= '<div class="crayon-num' . $marked_num . $striped_num . '" data-line="' . $line_id . '">' . $line_num . '</div>';
}
}
// If $line_numbers is a string, display it
if (is_string($line_numbers) && !empty($line_numbers)) {
$print_nums .= '<div class="crayon-num">' . $line_numbers . '</div>';
} else if (empty($line_numbers)) {
$print_nums = FALSE;
}
// Determine whether to print title, encode characters
$title = $hl->title();
// Decode if needed
if ($hl->setting_val(CrayonSettings::DECODE_ATTRIBUTES)) {
$title = CrayonUtil::html_entity_decode($title);
}
$print_title = '<span class="crayon-title">' . $title . '</span>';
// Determine whether to print language
$print_lang = '';
// XXX Use for printing the regex
if ($hl->language()) {
$lang = $hl->language()->name();
switch ($hl->setting_index(CrayonSettings::SHOW_LANG)) {
case 0 :
if ($hl->language()->id() == CrayonLangs::DEFAULT_LANG) {
break;
}
// Falls through
case 1 :
$print_lang = '<span class="crayon-language">' . $lang . '</span>';
break;
}
}
// Disable functionality for errors
$error = $hl->error();
// Combined settings for code
$code_settings = '';
// Disable mouseover for touchscreen devices and mobiles, if we are told to
$touch = FALSE; // Whether we have detected a touchscreen device
if ($hl->setting_val(CrayonSettings::TOUCHSCREEN) && CrayonUtil::is_touch()) {
$touch = TRUE;
$code_settings .= ' touchscreen';
}
// Disabling Popup
if (!$hl->setting_val(CrayonSettings::POPUP)) {
$code_settings .= ' no-popup';
}
// Minimize
if (!$hl->setting_val(CrayonSettings::MINIMIZE)) {
$code_settings .= ' minimize';
}
// Draw the plain code and toolbar
$toolbar_settings = $print_plain_button = $print_copy_button = '';
$toolbar_index = $hl->setting_index(CrayonSettings::TOOLBAR);
if (empty($error) && ($toolbar_index != 2 || $hl->setting_val(CrayonSettings::MINIMIZE))) {
// Enable mouseover setting for toolbar
if ($toolbar_index == 0 && !$touch) {
// No touchscreen detected
$toolbar_settings .= ' mouseover';
if ($hl->setting_val(CrayonSettings::TOOLBAR_OVERLAY)) {
$toolbar_settings .= ' overlay';
}
if ($hl->setting_val(CrayonSettings::TOOLBAR_HIDE)) {
$toolbar_settings .= ' hide';
}
if ($hl->setting_val(CrayonSettings::TOOLBAR_DELAY)) {
$toolbar_settings .= ' delay';
}
} else if ($toolbar_index == 1) {
// Always display the toolbar
$toolbar_settings .= ' show';
} else if ($toolbar_index == 2) {
$toolbar_settings .= ' never-show';
}
$buttons = array();
if ($hl->setting_val(CrayonSettings::NUMS_TOGGLE)) {
$buttons['nums'] = crayon__('Toggle Line Numbers');
}
if ($hl->setting_val(CrayonSettings::PLAIN) && $hl->setting_val(CrayonSettings::PLAIN_TOGGLE)) {
$buttons['plain'] = crayon__('Toggle Plain Code');
}
if ($hl->setting_val(CrayonSettings::WRAP_TOGGLE)) {
$buttons['wrap'] = crayon__('Toggle Line Wrap');
}
if ($hl->setting_val(CrayonSettings::EXPAND_TOGGLE)) {
$buttons['expand'] = crayon__('Expand Code');
}
if (!$touch && $hl->setting_val(CrayonSettings::PLAIN) && $hl->setting_val(CrayonSettings::COPY)) {
$buttons['copy'] = crayon__('Copy');
}
if ($hl->setting_val(CrayonSettings::POPUP)) {
$buttons['popup'] = crayon__('Open Code In New Window');
}
$buttons_str = '';
foreach ($buttons as $button => $value) {
$buttons_str .= '<div class="crayon-button crayon-' . $button . '-button"';
if (!is_array($value)) {
$value = array('title' => $value);
}
foreach ($value as $k => $v) {
$buttons_str .= ' ' . $k . '="' . $v . '"';
}
$buttons_str .= '><div class="crayon-button-icon"></div></div>';
}
/* The table is rendered invisible by CSS and enabled with JS when asked to. If JS
is not enabled or fails, the toolbar won't work so there is no point to display it. */
$print_plus = $hl->is_mixed() && $hl->setting_val(CrayonSettings::SHOW_MIXED) ? '<span class="crayon-mixed-highlight" title="' . crayon__('Contains Mixed Languages') . '"></span>' : '';
$buttons = $print_plus . $buttons_str . $print_lang;
$toolbar = '
<div class="crayon-toolbar" data-settings="' . $toolbar_settings . '" style="' . $toolbar_style . '">' . $print_title . '
<div class="crayon-tools" style="' . $toolbar_style . '">' . $buttons . '</div></div>
<div class="crayon-info" style="' . $info_style . '"></div>';
} else {
$toolbar = $buttons = $plain_settings = '';
}
if (empty($error) && $hl->setting_val(CrayonSettings::PLAIN)) {
// Different events to display plain code
switch ($hl->setting_index(CrayonSettings::SHOW_PLAIN)) {
case 0 :
$plain_settings = 'dblclick';
break;
case 1 :
$plain_settings = 'click';
break;
case 2 :
$plain_settings = 'mouseover';
break;
default :
$plain_settings = '';
}
if ($hl->setting_val(CrayonSettings::SHOW_PLAIN_DEFAULT)) {
$plain_settings .= ' show-plain-default';
}
$readonly = $touch ? '' : 'readonly';
$print_plain = $print_plain_button = '';
$textwrap = !$hl->setting_val(CrayonSettings::WRAP) ? 'wrap="soft"' : '';
$print_plain = '<textarea ' . $textwrap . ' class="crayon-plain print-no" data-settings="' . $plain_settings . '" ' . $readonly . ' style="' . $pre_style . ' ' . $font_style . '">' . "\n" . self::clean_code($hl->code()) . '</textarea>';
} else {
$print_plain = $plain_settings = $plain_settings = '';
}
// Line numbers visibility
$num_vis = $num_settings = '';
if ($line_numbers === FALSE) {
$num_vis = 'crayon-invisible';
} else {
$num_settings = ($hl->setting_val(CrayonSettings::NUMS) ? 'show' : 'hide');
}
// Determine scrollbar visibility
$code_settings .= $hl->setting_val(CrayonSettings::SCROLL) && !$touch ? ' scroll-always' : ' scroll-mouseover';
// Disable animations
if ($hl->setting_val(CrayonSettings::DISABLE_ANIM)) {
$code_settings .= ' disable-anim';
}
// Wrap
if ($hl->setting_val(CrayonSettings::WRAP)) {
$code_settings .= ' wrap';
}
// Expand
if ($hl->setting_val(CrayonSettings::EXPAND)) {
$code_settings .= ' expand';
}
// Determine dimensions
if ($hl->setting_val(CrayonSettings::HEIGHT_SET)) {
$height_style = self::dimension_style($hl, CrayonSettings::HEIGHT);
// XXX Only set height for main, not code (if toolbar always visible, code will cover main)
if ($hl->setting_index(CrayonSettings::HEIGHT_UNIT) == 0) {
$main_style .= $height_style;
}
}
if ($hl->setting_val(CrayonSettings::WIDTH_SET)) {
$width_style = self::dimension_style($hl, CrayonSettings::WIDTH);
$code_style .= $width_style;
if ($hl->setting_index(CrayonSettings::WIDTH_UNIT) == 0) {
$main_style .= $width_style;
}
}
// Determine margins
if ($hl->setting_val(CrayonSettings::TOP_SET)) {
$code_style .= ' margin-top: ' . $hl->setting_val(CrayonSettings::TOP_MARGIN) . 'px;';
}
if ($hl->setting_val(CrayonSettings::BOTTOM_SET)) {
$code_style .= ' margin-bottom: ' . $hl->setting_val(CrayonSettings::BOTTOM_MARGIN) . 'px;';
}
if ($hl->setting_val(CrayonSettings::LEFT_SET)) {
$code_style .= ' margin-left: ' . $hl->setting_val(CrayonSettings::LEFT_MARGIN) . 'px;';
}
if ($hl->setting_val(CrayonSettings::RIGHT_SET)) {
$code_style .= ' margin-right: ' . $hl->setting_val(CrayonSettings::RIGHT_MARGIN) . 'px;';
}
// Determine horizontal alignment
$align_style = '';
switch ($hl->setting_index(CrayonSettings::H_ALIGN)) {
case 1 :
$align_style = ' float: left;';
break;
case 2 :
$align_style = ' float: none; margin-left: auto; margin-right: auto;';
break;
case 3 :
$align_style = ' float: right;';
break;
}
$code_style .= $align_style;
// Determine allowed float elements
if ($hl->setting_val(CrayonSettings::FLOAT_ENABLE)) {
$clear_style = ' clear: none;';
} else {
$clear_style = '';
}
$code_style .= $clear_style;
// Determine if operating system is mac
$crayon_os = CrayonUtil::is_mac() ? 'mac' : 'pc';
// Produce output
$output .= '
<div id="' . $uid . '" class="crayon-syntax crayon-theme-' . $theme_id_dashed . ' crayon-font-' . $font_id_dashed . ' crayon-os-' . $crayon_os . ' print-yes notranslate" data-settings="' . $code_settings . '" style="' . $code_style . ' ' . $font_style . '">
' . $toolbar . '
<div class="crayon-plain-wrap">' . $print_plain . '</div>' . '
<div class="crayon-main" style="' . $main_style . '">
<table class="crayon-table">
<tr class="crayon-row">';
if ($print_nums !== FALSE) {
$output .= '
<td class="crayon-nums ' . $num_vis . '" data-settings="' . $num_settings . '">
<div class="crayon-nums-content" style="' . $font_style . '">' . $print_nums . '</div>
</td>';
}
// XXX
$output .= '
<td class="crayon-code"><div class="crayon-pre" style="' . $font_style . ' ' . $pre_style . '">' . $print_code . '</div></td>
</tr>
</table>
</div>
</div>';
// Debugging stats
$runtime = $hl->runtime();
if (!$hl->setting_val(CrayonSettings::DISABLE_RUNTIME) && is_array($runtime) && !empty($runtime)) {
$output = '<!-- Crayon Syntax Highlighter v' . $CRAYON_VERSION . ' -->'
. CRAYON_NL . $output . CRAYON_NL . '<!-- ';
foreach ($hl->runtime() as $type => $time) {
$output .= '[' . $type . ': ' . sprintf('%.4f seconds', $time) . '] ';
}
$output .= '-->' . CRAYON_NL;
}
// Determine whether to print to screen or save
if ($print) {
echo $output;
} else {
return $output;
}
}
public static function print_error($hl, $error, $line_numbers = 'ERROR', $print = TRUE) {
if (get_class($hl) != CRAYON_HIGHLIGHTER) {
return;
}
// Either print the error returned by the handler, or a custom error message
if ($hl->setting_val(CrayonSettings::ERROR_MSG_SHOW)) {
$error = $hl->setting_val(CrayonSettings::ERROR_MSG);
}
$error = self::split_lines(trim($error), 'crayon-error');
return self::print_code($hl, $error, $line_numbers, $print);
}
// Delimiters =============================================================
public static function format_mixed_code($code, $language, $hl) {
self::$curr = $hl;
self::$delim_pieces = array();
// Remove crayon internal element from INPUT code
$code = preg_replace('#' . CrayonParser::CRAYON_ELEMENT_REGEX_CAPTURE . '#msi', '', $code);
if (self::$delimiters == NULL) {
self::$delimiters = CrayonResources::langs()->delimiters();
}
// Find all delimiters in all languages
if (self::$delim_regex == NULL) {
self::$delim_regex = '#(' . implode(')|(', array_values(self::$delimiters)) . ')#msi';
}
// Extract delimited code, replace with internal elements
$internal_code = preg_replace_callback(self::$delim_regex, 'CrayonFormatter::delim_to_internal', $code);
// Format with given language
$formatted_code = CrayonFormatter::format_code($internal_code, $language, $hl);
// Replace internal elements with delimited pieces
$formatted_code = preg_replace_callback('#\{\{crayon-internal:(\d+)\}\}#', 'CrayonFormatter::internal_to_code', $formatted_code);
return $formatted_code;
}
public static function delim_to_internal($matches) {
// Mark as mixed so we can show (+)
self::$curr->is_mixed(TRUE);
$capture_group = count($matches) - 2;
$capture_groups = array_keys(self::$delimiters);
$lang_id = $capture_groups[$capture_group];
if (($lang = CrayonResources::langs()->get($lang_id)) === NULL) {
return $matches[0];
}
$internal = sprintf('{{crayon-internal:%d}}', count(self::$delim_pieces));
// TODO fix
self::$delim_pieces[] = CrayonFormatter::format_code($matches[0], $lang, self::$curr);
return $internal;
}
public static function internal_to_code($matches) {
return self::$delim_pieces[intval($matches[1])];
}
// Auxiliary Methods ======================================================
/* Prepares code for formatting. */
public static function clean_code($code, $escape = TRUE, $spaces = FALSE, $tabs = FALSE, $lines = FALSE) {
if (empty($code)) {
return $code;
}
/* Convert <, > and & characters to entities, as these can appear as HTML tags and entities. */
if ($escape) {
$code = CrayonUtil::htmlspecialchars($code);
}
if ($spaces) {
// Replace 2 spaces with html escaped characters
$code = preg_replace('#[ ]{2}#msi', '&nbsp;&nbsp;', $code);
}
if ($tabs && CrayonGlobalSettings::val(CrayonSettings::TAB_CONVERT)) {
// Replace tabs with 4 spaces
$code = preg_replace('#\t#', str_repeat('&nbsp;', CrayonGlobalSettings::val(CrayonSettings::TAB_SIZE)), $code);
}
if ($lines) {
$code = preg_replace('#(\r\n)|\r|\n#msi', "\r\n", $code);
}
return $code;
}
/* Converts the code to entities and wraps in a <pre><code></code></pre> */
public static function plain_code($code, $encoded = TRUE) {
if (is_array($code)) {
// When used as a preg_replace_callback
$code = $code[1];
}
if (!$encoded) {
$code = CrayonUtil::htmlentities($code);
}
if (CrayonGlobalSettings::val(CrayonSettings::TRIM_WHITESPACE)) {
$code = trim($code);
}
return '<pre class="crayon-plain-tag">' . $code . '</pre>';
}
public static function split_lines($code, $class) {
$code = self::clean_code($code, TRUE, TRUE, TRUE, FALSE);
$class = preg_replace('#(\w+)#m', 'crayon-$1', $class);
$code = preg_replace('#^([^\r\n]+)(?=\r\n|\r|\n|$)#m', '<span class="' . $class . '">$1</span>', $code);
return $code;
}
private static function dimension_style($hl, $name) {
$mode = $unit = '';
switch ($name) {
case CrayonSettings::HEIGHT :
$mode = CrayonSettings::HEIGHT_MODE;
$unit = CrayonSettings::HEIGHT_UNIT;
break;
case CrayonSettings::WIDTH :
$mode = CrayonSettings::WIDTH_MODE;
$unit = CrayonSettings::WIDTH_UNIT;
break;
}
// XXX Uses actual index value to identify options
$mode = $hl->setting_index($mode);
$unit = $hl->setting_index($unit);
$dim_mode = $dim_unit = '';
if ($mode !== FALSE) {
switch ($mode) {
case 0 :
$dim_mode .= 'max-';
break;
case 1 :
$dim_mode .= 'min-';
break;
}
}
$dim_mode .= $name;
if ($unit !== FALSE) {
switch ($unit) {
case 0 :
$dim_unit = 'px';
break;
case 1 :
$dim_unit = '%';
break;
}
}
return ' ' . $dim_mode . ': ' . $hl->setting_val($name) . $dim_unit . ';';
}
}
?>

View File

@ -0,0 +1,423 @@
<?php
// Class includes
require_once ('global.php');
require_once (CRAYON_PARSER_PHP);
require_once (CRAYON_FORMATTER_PHP);
require_once (CRAYON_SETTINGS_PHP);
require_once (CRAYON_LANGS_PHP);
/* The main class for managing the syntax highlighter */
class CrayonHighlighter {
// Properties and Constants ===============================================
private $id = '';
// URL is initially NULL, meaning none provided
private $url = NULL;
private $code = '';
private $formatted_code = '';
private $title = '';
private $line_count = 0;
private $marked_lines = array();
private $range = NULL;
private $error = '';
// Determine whether the code needs to be loaded, parsed or formatted
private $needs_load = FALSE;
private $needs_format = FALSE;
// Record the script run times
private $runtime = array();
// Whether the code is mixed
private $is_mixed = FALSE;
// Inline code on a single floating line
private $is_inline = FALSE;
private $is_highlighted = TRUE;
// Objects
// Stores the CrayonLang being used
private $language = NULL;
// A copy of the current global settings which can be overridden
private $settings = NULL;
// Methods ================================================================
function __construct($url = NULL, $language = NULL, $id = NULL) {
if ($url !== NULL) {
$this->url($url);
}
if ($language !== NULL) {
$this->language($language);
}
// Default ID
$id = $id !== NULL ? $id : uniqid();
$this->id($id);
}
/* Tries to load the code locally, then attempts to load it remotely */
private function load() {
if (empty($this->url)) {
$this->error('The specified URL is empty, please provide a valid URL.');
return;
}
// Try to replace the URL with an absolute path if it is local, used to prevent scripts
// from executing when they are loaded.
$url = $this->url;
if ($this->setting_val(CrayonSettings::DECODE_ATTRIBUTES)) {
$url = CrayonUtil::html_entity_decode($url);
}
$url = CrayonUtil::pathf($url);
$site_http = CrayonGlobalSettings::site_url();
$scheme = parse_url($url, PHP_URL_SCHEME);
// Try to replace the site URL with a path to force local loading
if (empty($scheme)) {
// No url scheme is given - path may be given as relative
$url = CrayonUtil::path_slash($site_http) . CrayonUtil::path_slash($this->setting_val(CrayonSettings::LOCAL_PATH)) . $url;
}
$http_code = 0;
// If available, use the built in wp remote http get function.
if (function_exists('wp_remote_get')) {
$url_uid = 'crayon_' . CrayonUtil::str_uid($url);
$cached = get_transient($url_uid, 'crayon-syntax');
CrayonSettingsWP::load_cache();
if ($cached !== FALSE) {
$content = $cached;
$http_code = 200;
} else {
$response = @wp_remote_get($url, array('sslverify' => false, 'timeout' => 20));
$content = wp_remote_retrieve_body($response);
$http_code = wp_remote_retrieve_response_code($response);
$cache = $this->setting_val(CrayonSettings::CACHE);
$cache_sec = CrayonSettings::get_cache_sec($cache);
if ($cache_sec > 1 && $http_code >= 200 && $http_code < 400) {
set_transient($url_uid, $content, $cache_sec);
CrayonSettingsWP::add_cache($url_uid);
}
}
} else if (in_array(parse_url($url, PHP_URL_SCHEME), array('ssl', 'http', 'https'))) {
// Fallback to cURL. At this point, the URL scheme must be valid.
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
// For https connections, we do not require SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, FALSE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
if (isset($_SERVER['HTTP_USER_AGENT'])) {
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
}
$content = curl_exec($ch);
$error = curl_error($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
}
if ($http_code >= 200 && $http_code < 400) {
$this->code($content);
} else {
if (empty($this->code)) {
// If code is also given, just use that
$this->error("The provided URL ('$this->url'), parsed remotely as ('$url'), could not be accessed.");
}
}
$this->needs_load = FALSE;
}
/* Central point of access for all other functions to update code. */
public function process() {
$tmr = new CrayonTimer();
$this->runtime = NULL;
if ($this->needs_load) {
$tmr->start();
$this->load();
$this->runtime[CRAYON_LOAD_TIME] = $tmr->stop();
}
if (!empty($this->error) || empty($this->code)) {
// Disable highlighting for errors and empty code
return;
}
if ($this->language === NULL) {
$this->language_detect();
}
if ($this->needs_format) {
$tmr->start();
try {
// Parse before hand to read modes
$code = $this->code;
// If inline, then combine lines into one
if ($this->is_inline) {
$code = preg_replace('#[\r\n]+#ms', '', $code);
if ($this->setting_val(CrayonSettings::TRIM_WHITESPACE)) {
$code = trim($code);
}
}
// Decode html entities (e.g. if using visual editor or manually encoding)
if ($this->setting_val(CrayonSettings::DECODE)) {
$code = CrayonUtil::html_entity_decode($code);
}
// Save code so output is plain output is the same
$this->code = $code;
// Allow mixed if langauge supports it and setting is set
CrayonParser::parse($this->language->id());
if (!$this->setting_val(CrayonSettings::MIXED) || !$this->language->mode(CrayonParser::ALLOW_MIXED)) {
// Format the code with the generated regex and elements
$this->formatted_code = CrayonFormatter::format_code($code, $this->language, $this);
} else {
// Format the code with Mixed Highlighting
$this->formatted_code = CrayonFormatter::format_mixed_code($code, $this->language, $this);
}
} catch (Exception $e) {
$this->error($e->message());
return;
}
$this->needs_format = FALSE;
$this->runtime[CRAYON_FORMAT_TIME] = $tmr->stop();
}
}
/* Used to format the glue in between code when finding mixed languages */
private function format_glue($glue, $highlight = TRUE) {
// TODO $highlight
return CrayonFormatter::format_code($glue, $this->language, $this, $highlight);
}
/* Sends the code to the formatter for printing. Apart from the getters and setters, this is
the only other function accessible outside this class. $show_lines can also be a string. */
function output($show_lines = TRUE, $print = TRUE) {
$this->process();
if (empty($this->error)) {
// If no errors have occured, print the formatted code
$ret = CrayonFormatter::print_code($this, $this->formatted_code, $show_lines, $print);
} else {
$ret = CrayonFormatter::print_error($this, $this->error, '', $print);
}
// Reset the error message at the end of the print session
$this->error = '';
// If $print = FALSE, $ret will contain the output
return $ret;
}
// Getters and Setters ====================================================
function code($code = NULL) {
if ($code === NULL) {
return $this->code;
} else {
// Trim whitespace
if ($this->setting_val(CrayonSettings::TRIM_WHITESPACE)) {
$code = preg_replace("#(?:^\\s*\\r?\\n)|(?:\\r?\\n\\s*$)#", '', $code);
}
if ($this->setting_val(CrayonSettings::TRIM_CODE_TAG)) {
$code = preg_replace('#^\s*<\s*code[^>]*>#msi', '', $code);
$code = preg_replace('#</\s*code[^>]*>\s*$#msi', '', $code);
}
$before = $this->setting_val(CrayonSettings::WHITESPACE_BEFORE);
if ($before > 0) {
$code = str_repeat("\n", $before) . $code;
}
$after = $this->setting_val(CrayonSettings::WHITESPACE_AFTER);
if ($after > 0) {
$code = $code . str_repeat("\n", $after);
}
if (!empty($code)) {
$this->code = $code;
$this->needs_format = TRUE;
}
}
}
function language($id = NULL) {
if ($id === NULL || !is_string($id)) {
return $this->language;
}
if ( ($lang = CrayonResources::langs()->get($id)) != FALSE || ($lang = CrayonResources::langs()->alias($id)) != FALSE ) {
// Set the language if it exists or look for an alias
$this->language = $lang;
} else {
$this->language_detect();
}
// Prepare the language for use, even if we have no code, we need the name
CrayonParser::parse($this->language->id());
}
function language_detect() {
// Attempt to detect the language
if (!empty($id)) {
$this->log("The language '$id' could not be loaded.");
}
$this->language = CrayonResources::langs()->detect($this->url, $this->setting_val(CrayonSettings::FALLBACK_LANG));
}
function url($url = NULL) {
if ($url === NULL) {
return $this->url;
} else {
$this->url = $url;
$this->needs_load = TRUE;
}
}
function title($title = NULL) {
if (!CrayonUtil::str($this->title, $title)) {
return $this->title;
}
}
function line_count($line_count = NULL) {
if (!CrayonUtil::num($this->line_count, $line_count)) {
return $this->line_count;
}
}
function marked($str = NULL) {
if ($str === NULL) {
return $this->marked_lines;
}
// If only an int is given
if (is_int($str)) {
$array = array($str);
return CrayonUtil::arr($this->marked_lines, $array);
}
// A string with ints separated by commas, can also contain ranges
$array = CrayonUtil::trim_e($str);
$array = array_unique($array);
$lines = array();
foreach ($array as $line) {
// Check for ranges
if (strpos($line, '-') !== FALSE) {
$ranges = CrayonUtil::range_str($line);
$lines = array_merge($lines, $ranges);
} else {
// Otherwise check the string for a number
$line = intval($line);
if ($line !== 0) {
$lines[] = $line;
}
}
}
return CrayonUtil::arr($this->marked_lines, $lines);
}
function range($str = NULL) {
if ($str === NULL) {
return $this->range;
} else {
$range = CrayonUtil::range_str_single($str);
if ($range) {
$this->range = $range;
}
}
return FALSE;
}
function log($var) {
if ($this->setting_val(CrayonSettings::ERROR_LOG)) {
CrayonLog::log($var);
}
}
function id($id = NULL) {
if ($id == NULL) {
return $this->id;
} else {
$this->id = strval($id);
}
}
function error($string = NULL) {
if (!$string) {
return $this->error;
}
$this->error .= $string;
$this->log($string);
// Add the error string and ensure no further processing occurs
$this->needs_load = FALSE;
$this->needs_format = FALSE;
}
// Set and retreive settings
// TODO fix this, it's too limiting
function settings($mixed = NULL) {
if ($this->settings == NULL) {
$this->settings = CrayonGlobalSettings::get_obj();
}
if ($mixed === NULL) {
return $this->settings;
} else if (is_string($mixed)) {
return $this->settings->get($mixed);
} else if (is_array($mixed)) {
$this->settings->set($mixed);
return TRUE;
}
return FALSE;
}
/* Retrieve a single setting's value for use in the formatter. By default, on failure it will
* return TRUE to ensure FALSE is only sent when a setting is found. This prevents a fake
* FALSE when the formatter checks for a positive setting (Show/Enable) and fails. When a
* negative setting is needed (Hide/Disable), $default_return should be set to FALSE. */
// TODO fix this (see above)
function setting_val($name = NULL, $default_return = TRUE) {
if (is_string($name) && $setting = $this->settings($name)) {
return $setting->value();
} else {
// Name not valid
return (is_bool($default_return) ? $default_return : TRUE);
}
}
// Set a setting value
// TODO fix this (see above)
function setting_set($name = NULL, $value = TRUE) {
$this->settings->set($name, $value);
}
// Used to find current index in dropdown setting
function setting_index($name = NULL) {
$setting = $this->settings($name);
if (is_string($name) && $setting->is_array()) {
return $setting->index();
} else {
// Returns -1 to avoid accidentally selecting an item in a dropdown
return CrayonSettings::INVALID;
}
}
function formatted_code() {
return $this->formatted_code;
}
function runtime() {
return $this->runtime;
}
function is_highlighted($highlighted = NULL) {
if ($highlighted === NULL) {
return $this->is_highlighted;
} else {
$this->is_highlighted = $highlighted;
}
}
function is_mixed($mixed = NULL) {
if ($mixed === NULL) {
return $this->is_mixed;
} else {
$this->is_mixed = $mixed;
}
}
function is_inline($inline = NULL) {
if ($inline === NULL) {
return $this->is_inline;
} else {
$inline = CrayonUtil::str_to_bool($inline, FALSE);
$this->is_inline = $inline;
}
}
}
?>

544
crayon_langs.class.php Normal file
View File

@ -0,0 +1,544 @@
<?php
require_once ('global.php');
require_once (CRAYON_RESOURCE_PHP);
class CrayonLangsResourceType {
const EXTENSION = 0;
const ALIAS = 1;
const DELIMITER = 2;
}
/* Manages languages once they are loaded. The parser directly loads them, saves them here. */
class CrayonLangs extends CrayonUserResourceCollection {
// Properties and Constants ===============================================
// CSS classes for known elements
private static $known_elements = array('COMMENT' => 'c', 'PREPROCESSOR' => 'p', 'STRING' => 's', 'KEYWORD' => 'k',
'STATEMENT' => 'st', 'RESERVED' => 'r', 'TYPE' => 't', 'TAG' => 'ta', 'MODIFIER' => 'm', 'IDENTIFIER' => 'i',
'ENTITY' => 'e', 'VARIABLE' => 'v', 'CONSTANT' => 'cn', 'OPERATOR' => 'o', 'SYMBOL' => 'sy',
'NOTATION' => 'n', 'FADED' => 'f', CrayonParser::HTML_CHAR => 'h', CrayonParser::CRAYON_ELEMENT => 'crayon-internal-element');
const DEFAULT_LANG = 'default';
const DEFAULT_LANG_NAME = 'Default';
const RESOURCE_TYPE = 'CrayonLangsResourceType';
// Used to cache the objects, since they are unlikely to change during a single run
private static $resource_cache = array();
// Methods ================================================================
public function __construct() {
$this->set_default(self::DEFAULT_LANG, self::DEFAULT_LANG_NAME);
$this->directory(CRAYON_LANG_PATH);
$this->relative_directory(CRAYON_LANG_DIR);
$this->extension('txt');
CrayonLog::debug("Setting lang directories");
$upload = CrayonGlobalSettings::upload_path();
if ($upload) {
$this->user_directory($upload . CRAYON_LANG_DIR);
if (!is_dir($this->user_directory())) {
CrayonGlobalSettings::mkdir($this->user_directory());
CrayonLog::debug($this->user_directory(), "LANG USER DIR");
}
} else {
CrayonLog::syslog("Upload directory is empty: " . $upload . " cannot load languages.");
}
CrayonLog::debug($this->directory());
CrayonLog::debug($this->user_directory());
}
public function filename($id, $user = NULL) {
return $id."/$id.".$this->extension();
}
// XXX Override
public function load_process() {
parent::load_process();
$this->load_exts();
$this->load_aliases();
$this->load_delimiters(); // TODO check for setting?
}
public function load_resources($dir = NULL) {
parent::load_resources($dir);
}
// XXX Override
public function create_user_resource_instance($id, $name = NULL) {
return new CrayonLang($id, $name);
}
// XXX Override
public function add_default() {
$result = parent::add_default();
if ($this->is_state_loading() && !$result) {
// Default not added, must already be loaded, ready to parse
CrayonParser::parse(self::DEFAULT_LANG);
}
}
/* Attempts to detect the language based on extension, otherwise falls back to fallback language given.
* Returns a CrayonLang object. */
public function detect($path, $fallback_id = NULL) {
$this->load();
extract(pathinfo($path));
// If fallback id if given
if ($fallback_id == NULL) {
// Otherwise use global fallback
$fallback_id = CrayonGlobalSettings::get(CrayonSettings::FALLBACK_LANG);
}
// Attempt to use fallback
$fallback = $this->get($fallback_id);
// Use extension before trying fallback
$extension = isset($extension) ? $extension : '';
if ( !empty($extension) && ($lang = $this->ext($extension)) || ($lang = $this->get($extension)) ) {
// If extension is found, attempt to find a language for it.
// If that fails, attempt to load a language with the same id as the extension.
return $lang;
} else if ($fallback != NULL || $fallback = $this->get_default()) {
// Resort to fallback if loaded, or fallback to default
return $fallback;
} else {
// No language found
return NULL;
}
}
/* Load all extensions and add them into each language. */
private function load_exts() {
// Load only once
if (!$this->is_state_loading()) {
return;
}
if ( ($lang_exts = self::load_attr_file(CRAYON_LANG_EXT)) !== FALSE ) {
foreach ($lang_exts as $lang_id=>$exts) {
$lang = $this->get($lang_id);
$lang->ext($exts);
}
}
}
/* Load all extensions and add them into each language. */
private function load_aliases() {
// Load only once
if (!$this->is_state_loading()) {
return;
}
if ( ($lang_aliases = self::load_attr_file(CRAYON_LANG_ALIAS)) !== FALSE ) {
foreach ($lang_aliases as $lang_id=>$aliases) {
$lang = $this->get($lang_id);
$lang->alias($aliases);
}
}
}
/* Load all extensions and add them into each language. */
private function load_delimiters() {
// Load only once
if (!$this->is_state_loading()) {
return;
}
if ( ($lang_delims = self::load_attr_file(CRAYON_LANG_DELIM)) !== FALSE ) {
foreach ($lang_delims as $lang_id=>$delims) {
$lang = $this->get($lang_id);
$lang->delimiter($delims);
}
}
}
// Used to load aliases and extensions to languages
private function load_attr_file($path) {
if ( ($lines = CrayonUtil::lines($path, 'lwc')) !== FALSE) {
$attributes = array(); // key = language id, value = array of attr
foreach ($lines as $line) {
preg_match('#^[\t ]*([^\r\n\t ]+)[\t ]+([^\r\n]+)#', $line, $matches);
if (count($matches) == 3 && $lang = $this->get($matches[1])) {
// If the langauges of the attribute exists, return it in an array
// TODO merge instead of replace key?
$attributes[$matches[1]] = explode(' ', $matches[2]);
}
}
return $attributes;
} else {
CrayonLog::syslog('Could not load attr file: ' . $path);
return FALSE;
}
}
/* Returns the CrayonLang for the given extension */
public function ext($ext) {
$this->load();
foreach ($this->get() as $lang) {
if ($lang->has_ext($ext)) {
return $lang;
}
}
return FALSE;
}
/* Returns the CrayonLang for the given alias */
public function alias($alias) {
$this->load();
foreach ($this->get() as $lang) {
if ($lang->has_alias($alias)) {
return $lang;
}
}
return FALSE;
}
/* Fetches a resource. Type is an int from CrayonLangsResourceType. */
public function fetch($type, $reload = FALSE, $keep_empty_fetches = FALSE) {
$this->load();
if (!array_key_exists($type, self::$resource_cache) || $reload) {
$fetches = array();
foreach ($this->get() as $lang) {
switch ($type) {
case CrayonLangsResourceType::EXTENSION:
$fetch = $lang->ext();
break;
case CrayonLangsResourceType::ALIAS:
$fetch = $lang->alias();
break;
case CrayonLangsResourceType::DELIMITER:
$fetch = $lang->delimiter();
break;
default:
return FALSE;
}
if ( !empty($fetch) || $keep_empty_fetches ) {
$fetches[$lang->id()] = $fetch;
}
}
self::$resource_cache[$type] = $fetches;
}
return self::$resource_cache[$type];
}
public function extensions($reload = FALSE) {
return $this->fetch(CrayonLangsResourceType::EXTENSION, $reload);
}
public function aliases($reload = FALSE) {
return $this->fetch(CrayonLangsResourceType::ALIAS, $reload);
}
public function delimiters($reload = FALSE) {
return $this->fetch(CrayonLangsResourceType::DELIMITER, $reload);
}
public function extensions_inverted($reload = FALSE) {
$extensions = $this->extensions($reload);
$inverted = array();
foreach ($extensions as $lang=>$exts) {
foreach ($exts as $ext) {
$inverted[$ext] = $lang;
}
}
return $inverted;
}
public function ids_and_aliases($reload = FALSE) {
$fetch = $this->fetch(CrayonLangsResourceType::ALIAS, $reload, TRUE);
foreach ($fetch as $id=>$alias_array) {
$ids_and_aliases[] = $id;
foreach ($alias_array as $alias) {
$ids_and_aliases[] = $alias;
}
}
return $ids_and_aliases;
}
/* Return the array of valid elements or a particular element value */
public static function known_elements($name = NULL) {
if ($name === NULL) {
return self::$known_elements;
} else if (is_string($name) && array_key_exists($name, self::$known_elements)) {
return self::$known_elements[$name];
} else {
return FALSE;
}
}
/* Verify an element is valid */
public static function is_known_element($name) {
return self::known_elements($name) !== FALSE;
}
/* Compare two languages by name */
public static function langcmp($a, $b) {
$a = strtolower($a->name());
$b = strtolower($b->name());
if ($a == $b) {
return 0;
} else {
return ($a < $b) ? -1 : 1;
}
}
public static function sort_by_name($langs) {
// Sort by name
usort($langs, 'CrayonLangs::langcmp');
$sorted_lags = array();
foreach ($langs as $lang) {
$sorted_lags[$lang->id()] = $lang;
}
return $sorted_lags;
}
public function is_parsed($id = NULL) {
if ($id === NULL) {
// Determine if all langs are successfully parsed
foreach ($this->get() as $lang) {
if ($lang->state() != CrayonLang::PARSED_SUCCESS) {
return FALSE;
}
}
return TRUE;
} else if (($lang = $this->get($id)) != FALSE) {
return $lang->is_parsed();
}
return FALSE;
}
public function is_default($id) {
if (($lang = $this->get($id)) != FALSE) {
return $lang->is_default();
}
return FALSE;
}
}
/* Individual language. */
class CrayonLang extends CrayonVersionResource {
private $ext = array();
private $aliases = array();
private $delimiters = '';
// Associative array of CrayonElement objects
private $elements = array();
//private $regex = '';
private $state = self::UNPARSED;
private $modes = array();
// Whether this language allows Multiple Highlighting from other languages
const PARSED_ERRORS = -1;
const UNPARSED = 0;
const PARSED_SUCCESS = 1;
function __construct($id, $name = NULL) {
parent::__construct($id, $name);
$this->modes = CrayonParser::modes();
}
// Override
function clean_id($id) {
$id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) );
return preg_replace('/[^\w\-+#]/msi', '', $id);
}
function ext($ext = NULL) {
if ($ext === NULL) {
return $this->ext;
} else if (is_array($ext) && !empty($ext)) {
foreach ($ext as $e) {
$this->ext($e);
}
} else if (is_string($ext) && !empty($ext) && !in_array($ext, $this->ext)) {
$ext = strtolower($ext);
$ext = str_replace('.', '', $ext);
$this->ext[] = $ext;
}
}
function has_ext($ext) {
return is_string($ext) && in_array($ext, $this->ext);
}
function alias($alias = NULL) {
if ($alias === NULL) {
return $this->aliases;
} else if (is_array($alias) && !empty($alias)) {
foreach ($alias as $a) {
$this->alias($a);
}
} else if (is_string($alias) && !empty($alias) && !in_array($alias, $this->aliases)) {
$alias = strtolower($alias);
$this->aliases[] = $alias;
}
}
function has_alias($alias) {
return is_string($alias) && in_array($alias, $this->aliases);
}
function delimiter($delim = NULL) {
if ($delim === NULL) {
return $this->delimiters;
// Convert to regex for capturing delimiters
} else if (is_string($delim) && !empty($delim)) {
$this->delimiters = '(?:'.$delim.')';
} else if (is_array($delim) && !empty($delim)) {
for ($i = 0; $i < count($delim); $i++) {
$delim[$i] = CrayonUtil::esc_atomic($delim[$i]);
}
$this->delimiters = '(?:'.implode(')|(?:', $delim).')';
}
}
function regex($element = NULL) {
if ($element == NULL) {
$regexes = array();
foreach ($this->elements as $element) {
$regexes[] = $element->regex();
}
return '#' . '(?:('. implode(')|(', array_values($regexes)) . '))' . '#' .
($this->mode(CrayonParser::CASE_INSENSITIVE) ? 'i' : '') .
($this->mode(CrayonParser::MULTI_LINE) ? 'm' : '') .
($this->mode(CrayonParser::SINGLE_LINE) ? 's' : '');
} else if (is_string($element) && array_key_exists($element, $this->elements)) {
return $this->elements[$element]->regex();
}
}
// Retrieve by element name or set by CrayonElement
function element($name, $element = NULL) {
if (is_string($name)) {
$name = trim(strtoupper($name));
if (array_key_exists($name, $this->elements) && $element === NULL) {
return $this->elements[$name];
} else if (@get_class($element) == CRAYON_ELEMENT_CLASS) {
$this->elements[$name] = $element;
}
}
}
function elements() {
return $this->elements;
}
function mode($name = NULL, $value = NULL) {
if (is_string($name) && CrayonParser::is_mode($name)) {
$name = trim(strtoupper($name));
if ($value == NULL && array_key_exists($name, $this->modes)) {
return $this->modes[$name];
} else if (is_string($value)) {
if (CrayonUtil::str_equal_array(trim($value), array('ON', 'YES', '1'))) {
$this->modes[$name] = TRUE;
} else if (CrayonUtil::str_equal_array(trim($value), array('OFF', 'NO', '0'))) {
$this->modes[$name] = FALSE;
}
}
} else {
return $this->modes;
}
}
function state($state = NULL) {
if ($state === NULL) {
return $this->state;
} else if (is_int($state)) {
if ($state < 0) {
$this->state = self::PARSED_ERRORS;
} else if ($state > 0) {
$this->state = self::PARSED_SUCCESS;
} else if ($state == 0) {
$this->state = self::UNPARSED;
}
}
}
function state_info() {
switch ($this->state) {
case self::PARSED_ERRORS :
return 'Parsed With Errors';
case self::PARSED_SUCCESS :
return 'Successfully Parsed';
case self::UNPARSED :
return 'Not Parsed';
default :
return 'Undetermined';
}
}
function is_parsed() {
return ($this->state != self::UNPARSED);
}
function is_default() {
return $this->id() == CrayonLangs::DEFAULT_LANG;
}
}
class CrayonElement {
// The pure regex syntax without any modifiers or delimiters
private $name = '';
private $css = '';
private $regex = '';
private $fallback = '';
private $path = '';
function __construct($name, $path, $regex = '') {
$this->name($name);
$this->path($path);
$this->regex($regex);
}
function __toString() {
return $this->regex();
}
function name($name = NULL) {
if ($name == NULL) {
return $this->name;
} else if (is_string($name)) {
$name = trim(strtoupper($name));
if (CrayonLangs::is_known_element($name)) {
// If known element, set CSS to known class
$this->css(CrayonLangs::known_elements($name));
}
$this->name = $name;
}
}
function regex($regex = NULL) {
if ($regex == NULL) {
return $this->regex;
} else if (is_string($regex)) {
if (($result = CrayonParser::validate_regex($regex, $this)) !== FALSE) {
$this->regex = $result;
} else {
return FALSE;
}
}
}
// Expects: 'class1 class2 class3'
function css($css = NULL) {
if ($css == NULL) {
return $this->css;
} else if (is_string($css)) {
$this->css = CrayonParser::validate_css($css);
}
}
function fallback($fallback = NULL) {
if ($fallback == NULL) {
return $this->fallback;
} else if (is_string($fallback) && CrayonLangs::is_known_element($fallback)) {
$this->fallback = $fallback;
}
}
function path($path = NULL) {
if ($path == NULL) {
return $this->path;
} else if (is_string($path) && @file_exists($path)) {
$this->path = $path;
}
}
}

265
crayon_parser.class.php Normal file
View File

@ -0,0 +1,265 @@
<?php
require_once ('global.php');
require_once (CRAYON_LANGS_PHP);
/* Manages parsing the syntax for any given language, constructing the regex, and validating the
elements. */
class CrayonParser {
// Properties and Constants ===============================================
const CASE_INSENSITIVE = 'CASE_INSENSITIVE';
const MULTI_LINE = 'MULTI_LINE';
const SINGLE_LINE = 'SINGLE_LINE';
const ALLOW_MIXED = 'ALLOW_MIXED';
//const NO_END_TAG = '(?![^<]*>)'; // No longer used
const HTML_CHAR = 'HTML_CHAR';
const HTML_CHAR_REGEX = '<|>|(&([\w-]+);?)|[ \t]+';
const CRAYON_ELEMENT = 'CRAYON_ELEMENT';
const CRAYON_ELEMENT_REGEX = '\{\{crayon-internal:[^\}]*\}\}';
const CRAYON_ELEMENT_REGEX_CAPTURE = '\{\{crayon-internal:([^\}]*)\}\}';
private static $modes = array(self::CASE_INSENSITIVE => TRUE, self::MULTI_LINE => TRUE, self::SINGLE_LINE => TRUE, self::ALLOW_MIXED => TRUE);
// Methods ================================================================
private function __construct() {}
/**
* Parse all languages stored in CrayonLangs.
* Avoid using this unless you must list the details in language files for all languages.
* @return array Array of all loaded CrayonLangs.
*/
public static function parse_all() {
$langs = CrayonResources::langs()->get();
if (empty($langs)) {
return FALSE;
}
foreach ($langs as $lang) {
self::parse($lang->id());
}
return $langs;
}
/* Read a syntax file and parse the regex rules within it, this may require several other
files containing lists of keywords and such to be read. Updates the parsed elements and
regex in the CrayonLang with the given $id. */
public static function parse($id) {
// Verify the language is loaded and has not been parsed before
if ( !($lang = CrayonResources::langs()->get($id)) ) {
CrayonLog::syslog("The language with id '$id' was not loaded and could not be parsed.");
return FALSE;
} else if ($lang->is_parsed()) {
return;
}
// Read language file
$path = CrayonResources::langs()->path($id);
CrayonLog::debug('Parsing language ' . $path);
if ( ($file = CrayonUtil::lines($path, 'wcs')) === FALSE ) {
CrayonLog::debug('Parsing failed ' . $path);
return FALSE;
}
// Extract the language name
$name_pattern = '#^[ \t]*name[ \t]+([^\r\n]+)[ \t]*#mi';
preg_match($name_pattern, $file, $name);
if (count($name) > 1) {
$name = $name[1];
$lang->name($name);
$file = preg_replace($name_pattern, '', $file);
} else {
$name = $lang->id();
}
// Extract the language version
$version_pattern = '#^[ \t]*version[ \t]+([^\r\n]+)[ \t]*#mi';
preg_match($version_pattern, $file, $version);
if (count($version) > 1) {
$version = $version[1];
$lang->version($version);
$file = preg_replace($version_pattern, '', $file);
}
// Extract the modes
$mode_pattern = '#^[ \t]*(' . implode('|', array_keys(self::$modes)) . ')[ \t]+(?:=[ \t]*)?([^\r\n]+)[ \t]*#mi';
preg_match_all($mode_pattern, $file, $mode_matches);
if (count($mode_matches) == 3) {
for ($i = 0; $i < count($mode_matches[0]); $i++) {
$lang->mode($mode_matches[1][$i], $mode_matches[2][$i]);
}
$file = preg_replace($mode_pattern, '', $file);
}
/* Add reserved Crayon element. This is used by Crayon internally. */
$crayon_element = new CrayonElement(self::CRAYON_ELEMENT, $path, self::CRAYON_ELEMENT_REGEX);
$lang->element(self::CRAYON_ELEMENT, $crayon_element);
// Extract elements, classes and regex
$pattern = '#^[ \t]*([\w:]+)[ \t]+(?:\[([\w\t ]*)\][ \t]+)?([^\r\n]+)[ \t]*#m';
preg_match_all($pattern, $file, $matches);
if (!empty($matches[0])) {
$elements = $matches[1];
$classes = $matches[2];
$regexes = $matches[3];
} else {
CrayonLog::syslog("No regex patterns and/or elements were parsed from language file at '$path'.");
}
// Remember state in case we encounter catchable exceptions
$error = FALSE;
for ($i = 0; $i < count($matches[0]); $i++) {
// References
$name = &$elements[$i];
$class = &$classes[$i];
$regex = &$regexes[$i];
$name = trim(strtoupper($name));
// Ensure both the element and regex are valid
if (empty($name) || empty($regex)) {
CrayonLog::syslog("Element(s) and/or regex(es) are missing in '$path'.");
$error = TRUE;
continue;
}
// Look for fallback element
$pieces = explode(':', $name);
if (count($pieces) == 2) {
$name = $pieces[0];
$fallback = $pieces[1];
} else if (count($pieces) == 1) {
$name = $pieces[0];
$fallback = '';
} else {
CrayonLog::syslog("Too many colons found in element name '$name' in '$path'");
$error = TRUE;
continue;
}
// Create a new CrayonElement
$element = new CrayonElement($name, $path);
$element->fallback($fallback);
if (!empty($class)) {
// Avoid setting known css to blank
$element->css($class);
}
if ($element->regex($regex) === FALSE) {
$error = TRUE;
continue;
}
// Add the regex to the element
$lang->element($name, $element);
$state = $error ? CrayonLang::PARSED_ERRORS : CrayonLang::PARSED_SUCCESS;
$lang->state($state);
}
/* Prevents < > and other html entities from being printed as is, which could lead to actual html tags
* from the printed code appearing on the page - not good. This can also act to color any HTML entities
* that are not picked up by previously defined elements.
*/
$html = new CrayonElement(self::HTML_CHAR, $path, self::HTML_CHAR_REGEX);
$lang->element(self::HTML_CHAR, $html);
}
// Validates regex and accesses data stored in a CrayonElement
public static function validate_regex($regex, $element) {
if (is_string($regex) && @get_class($element) == CRAYON_ELEMENT_CLASS) {
// If the (?alt) tag has been used, insert the file into the regex
$file = self::regex_match('#\(\?alt:(.+?)\)#', $regex);
if ( count($file) == 2 ) {
// Element 0 has full match, 1 has captured groups
for ($i = 0; $i < count($file[1]); $i++) {
$file_lines = CrayonUtil::lines(dirname($element->path()) . crayon_s() . $file[1][$i], 'rcwh');
if ($file_lines !== FALSE) {
$file_lines = implode('|', $file_lines);
// If any spaces exist, treat them as whitespace
$file_lines = preg_replace('#[ \t]+#msi', '\s+', $file_lines);
$regex = str_replace($file[0][$i], "(?:$file_lines)", $regex);
} else {
CrayonLog::syslog("Parsing of '{$element->path()}' failed, an (?alt) tag failed for the element '{$element->name()}'" );
return FALSE;
}
}
}
// If the (?default:element) function is used, replace the regex with the default, if exists
$def = self::regex_match('#\(\?default(?:\:(\w+))?\)#', $regex);
if ( count($def) == 2 ) {
// Load default language
$default = CrayonResources::langs()->get(CrayonLangs::DEFAULT_LANG);
// If default has not been loaded, we can't use it, skip the element
if (!$default) {
CrayonLog::syslog(
"Could not use default regex in the element '{$element->name()}' in '{$element->path()}'");
return FALSE;
}
for ($i = 0; $i < count($def[1]); $i++) {
// If an element has been provided
$element_name = ( !empty($def[1][$i]) ) ? $def[1][$i] : $element->name();
if (($default_element = $default->element($element_name)) != FALSE) {
$regex = str_replace($def[0][$i], '(?:' . $default_element->regex() .')', $regex);
} else {
CrayonLog::syslog("The language at '{$element->path()}' referred to the Default Language regex for element '{$element->name()}', which did not exist.");
if (CRAYON_DEBUG) {
CrayonLog::syslog("Default language URL: " . CrayonResources::langs()->url(CrayonLangs::DEFAULT_LANG));
CrayonLog::syslog("Default language Path: " . CrayonResources::langs()->path(CrayonLangs::DEFAULT_LANG));
}
return FALSE;
}
}
}
// If the (?html) tag is used, escape characters in html (<, > and &)
$html = self::regex_match('#\(\?html:(.+?)\)#', $regex);
if ( count($html) == 2 ) {
for ($i = 0; $i < count($html[1]); $i++) {
$regex = str_replace($html[0][$i], htmlentities($html[1][$i]), $regex);
}
}
// Ensure all parenthesis are atomic to avoid conflicting with element matches
$regex = CrayonUtil::esc_atomic($regex);
// Escape #, this is our delimiter
$regex = CrayonUtil::esc_hash($regex);
// Test if regex is valid
if (@preg_match("#$regex#", '') === FALSE) {
CrayonLog::syslog("The regex for the element '{$element->name()}' in '{$element->path()}' is not valid.");
return FALSE;
}
return $regex;
} else {
return '';
}
}
public static function validate_css($css) {
if (is_string($css)) {
// Remove dots in CSS class and convert to lowercase
$css = str_replace('.', '', $css);
$css = strtolower($css);
$css = explode(' ', $css);
$css_str = '';
foreach ($css as $c) {
if (!empty($c)) {
$css_str .= $c . ' ';
}
}
return trim($css_str);
} else {
return '';
}
}
public static function regex_match($pattern, $subject) {
if (preg_match_all($pattern, $subject, $matches)) {
return $matches;
}
return array();
}
public static function modes() {
return self::$modes;
}
public static function is_mode($name) {
return is_string($name) && array_key_exists($name, self::$modes);
}
}
?>

478
crayon_resource.class.php Normal file
View File

@ -0,0 +1,478 @@
<?php
require_once ('global.php');
require_once (CRAYON_LANGS_PHP);
require_once (CRAYON_THEMES_PHP);
require_once (CRAYON_FONTS_PHP);
class CrayonResources {
private static $langs = NULL;
private static $themes = NULL;
private static $fonts = NULL;
private function __construct() {}
public static function langs() {
if (self::$langs == NULL) {
self::$langs = new CrayonLangs();
}
return self::$langs;
}
public static function themes() {
if (self::$themes == NULL) {
self::$themes = new CrayonThemes();
}
return self::$themes;
}
public static function fonts() {
if (self::$fonts == NULL) {
self::$fonts = new CrayonFonts();
}
return self::$fonts;
}
}
class CrayonResourceCollection {
// Properties and Constants ===============================================
// Loaded resources
private $collection = array();
// Loading state
private $state = self::UNLOADED;
// Directory containing resources
private $dir = '';
private $default_id = '';
private $default_name = '';
const UNLOADED = -1;
const LOADING = 0;
const LOADED = 1;
// Methods ================================================================
/* Override in subclasses. Returns the absolute path for a given resource. Does not check for its existence. */
public function path($id) {
return '';
}
/* Verifies a resource exists. */
public function exists($id) {
return file_exists($this->path($id));
}
/* Load all the available languages. Doesn't parse them for their names and regex. */
public function load() {
// Load only once
if (!$this->is_state_unloaded()) {
return;
}
$this->state = self::LOADING;
$this->load_process();
$this->state = self::LOADED;
}
public function load_resources($dir = NULL) {
if ($dir === NULL) {
$dir = $this->dir;
}
if (!$this->is_state_loading()) {
// Load only once
return;
}
try {
// Look in directory for resources
if (!is_dir($dir)) {
CrayonLog::syslog('The resource directory is missing, should be at \'' . $dir . '\'.');
} else if (($handle = @opendir($dir)) != FALSE) {
// Loop over directory contents
while (($file = readdir($handle)) !== FALSE) {
if ($file != "." && $file != "..") {
// Check if $file is directory, remove extension when checking for existence.
if (!is_dir($dir . $file)) {
$file = CrayonUtil::path_rem_ext($file);
}
if ($this->exists($file)) {
$this->add_resource($this->resource_instance($file));
}
}
}
closedir($handle);
}
} catch (Exception $e) {
CrayonLog::syslog('An error occured when trying to load resources: ' . $e->getFile() . $e->getLine());
}
}
/* Override in subclasses. */
public function load_process() {
if (!$this->is_state_loading()) {
return;
}
$this->load_resources();
$this->add_default();
}
/* Override in subclasses */
public function add_default() {
if (!$this->is_state_loading()) {
return FALSE;
} else if (!$this->is_loaded($this->default_id)) {
CrayonLog::syslog('The default resource could not be loaded from \'' . $this->dir . '\'.');
// Add the default, but it will not be functionable
$default = $this->resource_instance($this->default_id, $this->default_name);
$this->add($this->default_id, $default);
return TRUE;
}
return FALSE;
}
/* Returns the default resource */
public function set_default($id, $name) {
$this->default_id = $id;
$this->default_name = $name;
}
/* Returns the default resource */
public function get_default() {
return $this->get($this->default_id);
}
/* Override in subclasses to create subclass object if needed */
public function resource_instance($id, $name = NULL) {
return new CrayonResource($id, $name);
}
public function add($id, $resource) {
if (is_string($id) && !empty($id)) {
$this->collection[$id] = $resource;
asort($this->collection);
CrayonLog::debug('Added resource: ' . $this->path($id));
} else {
CrayonLog::syslog('Could not add resource: ', $id);
}
}
public function add_resource($resource) {
$this->add($resource->id(), $resource);
}
public function remove($name) {
if (is_string($name) && !empty($name) && array_key_exists($name, $this->collection)) {
unset($this->collection[$name]);
}
}
public function remove_all() {
$this->collection = array();
}
/* Returns the resource for the given id or NULL if it can't be found */
public function get($id = NULL) {
$this->load();
if ($id === NULL) {
return $this->collection;
} else if (is_string($id) && $this->is_loaded($id)) {
return $this->collection[$id];
}
return NULL;
}
public function get_array() {
$array = array();
foreach ($this->get() as $resource) {
$array[$resource->id()] = $resource->name();
}
return $array;
}
public function is_loaded($id) {
if (is_string($id)) {
return array_key_exists($id, $this->collection);
}
return FALSE;
}
public function get_state() {
return $this->state;
}
public function is_state_loaded() {
return $this->state == self::LOADED;
}
public function is_state_loading() {
return $this->state == self::LOADING;
}
public function is_state_unloaded() {
return $this->state == self::UNLOADED;
}
public function directory($dir = NULL) {
if ($dir === NULL) {
return $this->dir;
} else {
$this->dir = CrayonUtil::path_slash($dir);
}
}
public function url($id) {
return '';
}
public function get_css($id, $ver = NULL) {
$resource = $this->get($id);
return '<link rel="stylesheet" type="text/css" href="' . $this->url($resource->id()) . ($ver ? "?ver=$ver" : '') . '" />' . CRAYON_NL;
}
}
class CrayonUsedResourceCollection extends CrayonResourceCollection {
// Checks if any resoruces are being used
public function is_used($id = NULL) {
if ($id === NULL) {
foreach ($this->get() as $resource) {
if ($resource->used()) {
return TRUE;
}
}
return FALSE;
} else {
$resource = $this->get($id);
if (!$resource) {
return FALSE;
} else {
return $resource->used();
}
}
}
public function set_used($id, $value = TRUE) {
$resource = $this->get($id);
if ($resource !== NULL && !$resource->used()) {
$resource->used($value == TRUE);
return TRUE;
}
return FALSE;
}
public function get_used() {
$used = array();
foreach ($this->get() as $resource) {
if ($resource->used()) {
$used[] = $resource;
}
}
return $used;
}
// XXX Override
public function resource_instance($id, $name = NULL) {
return new CrayonUsedResource($id, $name);
}
public function get_used_css() {
$used = $this->get_used();
$css = array();
foreach ($used as $resource) {
$url = $this->url($resource->id());
$css[$resource->id()] = $url;
}
return $css;
}
}
class CrayonUserResourceCollection extends CrayonUsedResourceCollection {
private $user_dir = '';
private $curr_dir = NULL;
// TODO better to use a base dir and relative
private $relative_directory = NULL;
// TODO move this higher up inheritance
private $extension = '';
// XXX Override
public function resource_instance($id, $name = NULL) {
$resource = $this->create_user_resource_instance($id, $name);
$resource->user($this->curr_dir == $this->user_directory());
return $resource;
}
public function create_user_resource_instance($id, $name = NULL) {
return new CrayonUserResource($id, $name);
}
public function user_directory($dir = NULL) {
if ($dir === NULL) {
return $this->user_dir;
} else {
$this->user_dir = CrayonUtil::path_slash($dir);
}
}
public function relative_directory($relative_directory = NULL) {
if ($relative_directory == NULL) {
return $this->relative_directory;
}
$this->relative_directory = $relative_directory;
}
public function extension($extension = NULL) {
if ($extension == NULL) {
return $this->extension;
}
$this->extension = $extension;
}
public function load_resources($dir = NULL) {
$this->curr_dir = $this->directory();
parent::load_resources($this->curr_dir);
$this->curr_dir = $this->user_directory();
parent::load_resources($this->curr_dir);
$this->curr_dir = NULL;
}
public function current_directory() {
return $this->curr_dir;
}
public function dir_is_user($id, $user = NULL) {
if ($user === NULL) {
if ($this->is_state_loading()) {
// We seem to be loading resources - use current directory
$user = $this->current_directory() == $this->user_directory();
} else {
$theme = $this->get($id);
if ($theme) {
$user = $theme->user();
} else {
$user = FALSE;
}
}
}
return $user;
}
public function dirpath($user = NULL) {
$path = $user ? $this->user_directory() : $this->directory();
return CrayonUtil::path_slash($path);
}
public function dirpath_for_id($id, $user = NULL) {
$user = $this->dir_is_user($id, $user);
return $this->dirpath($user) . $id;
}
public function dirurl($user = NULL) {
$path = $user ? CrayonGlobalSettings::upload_url() : CrayonGlobalSettings::plugin_path();
return CrayonUtil::path_slash($path . $this->relative_directory());
}
// XXX Override
public function path($id, $user = NULL) {
$user = $this->dir_is_user($id, $user);
return $this->dirpath($user) . $this->filename($id, $user);
}
// XXX Override
public function url($id, $user = NULL) {
$user = $this->dir_is_user($id, $user);
return $this->dirurl($user) . $this->filename($id, $user);
}
public function filename($id, $user = NULL) {
return "$id.$this->extension";
}
}
class CrayonResource {
private $id = '';
private $name = '';
function __construct($id, $name = NULL) {
$id = $this->clean_id($id);
CrayonUtil::str($this->id, $id);
( empty($name) ) ? $this->name( self::clean_name($this->id) ) : $this->name($name);
}
function __tostring() {
return $this->name;
}
function id() {
return $this->id;
}
function name($name = NULL) {
if ($name === NULL) {
return $this->name;
} else {
$this->name = $name;
}
}
function clean_id($id) {
$id = CrayonUtil::space_to_hyphen( strtolower(trim($id)) );
return preg_replace('#[^\w-]#msi', '', $id);
}
public static function clean_name($id) {
$id = CrayonUtil::hyphen_to_space( strtolower(trim($id)) );
return CrayonUtil::ucwords($id);
}
}
class CrayonUsedResource extends CrayonResource {
// Keeps track of usage
private $used = FALSE;
function used($used = NULL) {
if ($used === NULL) {
return $this->used;
} else {
$this->used = ($used ? TRUE : FALSE);
}
}
}
class CrayonUserResource extends CrayonUsedResource {
// Keeps track of user modifications
private $user = FALSE;
function user($user = NULL) {
if ($user === NULL) {
return $this->user;
} else {
$this->user = ($user ? TRUE : FALSE);
}
}
}
class CrayonVersionResource extends CrayonUserResource {
// Adds version
private $version = '';
function __construct($id, $name = NULL, $version = NULL) {
parent::__construct($id, $name);
$this->version($version);
}
function version($version = NULL) {
if ($version === NULL) {
return $this->version;
} else if (is_string($version)) {
$this->version = $version;
}
}
}
?>

918
crayon_settings.class.php Normal file
View File

@ -0,0 +1,918 @@
<?php
require_once('global.php');
require_once(CRAYON_PARSER_PHP);
require_once(CRAYON_THEMES_PHP);
/**
* Stores CrayonSetting objects.
* Each Crayon instance stores an instance of this class containing its specific settings.
*/
class CrayonSettings {
// Properties and Constants ===============================================
const INVALID = -1; // Used for invalid dropdown index
// Plugin data
const VERSION = 'version';
// Added when used in HTML to avoid id conflicts
const PREFIX = 'crayon-';
const SETTING = 'crayon-setting';
const SETTING_SELECTED = 'crayon-setting-selected';
const SETTING_CHANGED = 'crayon-setting-changed';
const SETTING_SPECIAL = 'crayon-setting-special';
const SETTING_ORIG_VALUE = 'data-orig-value';
// Global names for settings
const THEME = 'theme';
const FONT = 'font';
const FONT_SIZE_ENABLE = 'font-size-enable';
const FONT_SIZE = 'font-size';
const LINE_HEIGHT = 'line-height';
const PREVIEW = 'preview';
const HEIGHT_SET = 'height-set';
const HEIGHT_MODE = 'height-mode';
const HEIGHT = 'height';
const HEIGHT_UNIT = 'height-unit';
const WIDTH_SET = 'width-set';
const WIDTH_MODE = 'width-mode';
const WIDTH = 'width';
const WIDTH_UNIT = 'width-unit';
const TOP_SET = 'top-set';
const TOP_MARGIN = 'top-margin';
const LEFT_SET = 'left-set';
const LEFT_MARGIN = 'left-margin';
const BOTTOM_SET = 'bottom-set';
const BOTTOM_MARGIN = 'bottom-margin';
const RIGHT_SET = 'right-set';
const RIGHT_MARGIN = 'right-margin';
const H_ALIGN = 'h-align';
const FLOAT_ENABLE = 'float-enable';
const TOOLBAR = 'toolbar';
const TOOLBAR_OVERLAY = 'toolbar-overlay';
const TOOLBAR_HIDE = 'toolbar-hide';
const TOOLBAR_DELAY = 'toolbar-delay';
const COPY = 'copy';
const POPUP = 'popup';
const SHOW_LANG = 'show-lang';
const SHOW_TITLE = 'show-title';
const STRIPED = 'striped';
const MARKING = 'marking';
const START_LINE = 'start-line';
const NUMS = 'nums';
const NUMS_TOGGLE = 'nums-toggle';
const TRIM_WHITESPACE = 'trim-whitespace';
const WHITESPACE_BEFORE = 'whitespace-before';
const WHITESPACE_AFTER = 'whitespace-after';
const TRIM_CODE_TAG = 'trim-code-tag';
const TAB_SIZE = 'tab-size';
const TAB_CONVERT = 'tab-convert';
const FALLBACK_LANG = 'fallback-lang';
const LOCAL_PATH = 'local-path';
const SCROLL = 'scroll';
const PLAIN = 'plain';
const PLAIN_TOGGLE = 'plain-toggle';
const SHOW_PLAIN = 'show-plain';
const DISABLE_RUNTIME = 'runtime';
const DISABLE_DATE = 'disable-date';
const TOUCHSCREEN = 'touchscreen';
const DISABLE_ANIM = 'disable-anim';
const ERROR_LOG = 'error-log';
const ERROR_LOG_SYS = 'error-log-sys';
const ERROR_MSG_SHOW = 'error-msg-show';
const ERROR_MSG = 'error-msg';
const HIDE_HELP = 'hide-help';
const CACHE = 'cache';
const EFFICIENT_ENQUEUE = 'efficient-enqueue';
const CAPTURE_PRE = 'capture-pre';
const CAPTURE_MINI_TAG = 'capture-mini-tag';
const MIXED = 'mixed';
const SHOW_MIXED = 'show_mixed';
const PLAIN_TAG = 'plain_tag';
const SHOW_PLAIN_DEFAULT = 'show-plain-default';
const ENQUEUE_THEMES = 'enqueque-themes';
const ENQUEUE_FONTS = 'enqueque-fonts';
const MAIN_QUERY = 'main-query';
const SAFE_ENQUEUE = 'safe-enqueue';
const INLINE_TAG = 'inline-tag';
const INLINE_TAG_CAPTURE = 'inline-tag-capture';
const CODE_TAG_CAPTURE = 'code-tag-capture';
const CODE_TAG_CAPTURE_TYPE = 'code-tag-capture-type';
const INLINE_MARGIN = 'inline-margin';
const INLINE_WRAP = 'inline-wrap';
const BACKQUOTE = 'backquote';
const COMMENTS = 'comments';
const DECODE = 'decode';
const DECODE_ATTRIBUTES = 'decode-attributes';
// const TINYMCE_USED = 'tinymce-used';
const ATTR_SEP = 'attr-sep';
const EXCERPT_STRIP = 'excerpt-strip';
const RANGES = 'ranges';
const TAG_EDITOR_FRONT = 'tag-editor-front';
const TAG_EDITOR_SETTINGS = 'tag-editor-front-hide';
const TAG_EDITOR_ADD_BUTTON_TEXT = 'tag-editor-button-add-text';
const TAG_EDITOR_EDIT_BUTTON_TEXT = 'tag-editor-button-edit-text';
const TAG_EDITOR_QUICKTAG_BUTTON_TEXT = 'tag-editor-quicktag-button-text';
const WRAP_TOGGLE = 'wrap-toggle';
const WRAP = 'wrap';
const EXPAND = 'expand';
const EXPAND_TOGGLE = 'expand-toggle';
const MINIMIZE = 'minimize';
const IGNORE = 'ignore';
const DELAY_LOAD_JS = 'delay-load-js';
private static $cache_array;
public static function get_cache_sec($cache) {
$values = array_values(self::$cache_array);
if (array_key_exists($cache, $values)) {
return $values[$cache];
} else {
return $values[0];
}
}
// The current settings, should be loaded with default if none exists
private $settings = array();
// The settings with default values
private static $default = NULL;
function __construct() {
$this->init();
}
function copy() {
$settings = new CrayonSettings();
foreach ($this->settings as $setting) {
$settings->set($setting); // Overuse of set?
}
return $settings;
}
// Methods ================================================================
private function init() {
global $CRAYON_VERSION;
crayon_load_plugin_textdomain();
self::$cache_array = array(crayon__('Hourly') => 3600, crayon__('Daily') => 86400,
crayon__('Weekly') => 604800, crayon__('Monthly') => 18144000,
crayon__('Immediately') => 1);
$settings = array(
new CrayonSetting(self::VERSION, $CRAYON_VERSION, NULL, TRUE),
new CrayonSetting(self::THEME, CrayonThemes::DEFAULT_THEME),
new CrayonSetting(self::FONT, CrayonFonts::DEFAULT_FONT),
new CrayonSetting(self::FONT_SIZE_ENABLE, TRUE),
new CrayonSetting(self::FONT_SIZE, 12),
new CrayonSetting(self::LINE_HEIGHT, 15),
new CrayonSetting(self::PREVIEW, TRUE),
new CrayonSetting(self::HEIGHT_SET, FALSE),
new CrayonSetting(self::HEIGHT_MODE, array(crayon__('Max'), crayon__('Min'), crayon__('Static'))),
new CrayonSetting(self::HEIGHT, '500'),
new CrayonSetting(self::HEIGHT_UNIT, array(crayon__('Pixels'), crayon__('Percent'))),
new CrayonSetting(self::WIDTH_SET, FALSE),
new CrayonSetting(self::WIDTH_MODE, array(crayon__('Max'), crayon__('Min'), crayon__('Static'))),
new CrayonSetting(self::WIDTH, '500'),
new CrayonSetting(self::WIDTH_UNIT, array(crayon__('Pixels'), crayon__('Percent'))),
new CrayonSetting(self::TOP_SET, TRUE),
new CrayonSetting(self::TOP_MARGIN, 12),
new CrayonSetting(self::BOTTOM_SET, TRUE),
new CrayonSetting(self::BOTTOM_MARGIN, 12),
new CrayonSetting(self::LEFT_SET, FALSE),
new CrayonSetting(self::LEFT_MARGIN, 12),
new CrayonSetting(self::RIGHT_SET, FALSE),
new CrayonSetting(self::RIGHT_MARGIN, 12),
new CrayonSetting(self::H_ALIGN, array(crayon__('None'), crayon__('Left'), crayon__('Center'), crayon__('Right'))),
new CrayonSetting(self::FLOAT_ENABLE, FALSE),
new CrayonSetting(self::TOOLBAR, array(crayon__('On MouseOver'), crayon__('Always'), crayon__('Never'))),
new CrayonSetting(self::TOOLBAR_OVERLAY, TRUE),
new CrayonSetting(self::TOOLBAR_HIDE, TRUE),
new CrayonSetting(self::TOOLBAR_DELAY, TRUE),
new CrayonSetting(self::COPY, TRUE),
new CrayonSetting(self::POPUP, TRUE),
new CrayonSetting(self::SHOW_LANG, array(crayon__('When Found'), crayon__('Always'), crayon__('Never'))),
new CrayonSetting(self::SHOW_TITLE, TRUE),
new CrayonSetting(self::STRIPED, TRUE),
new CrayonSetting(self::MARKING, TRUE),
new CrayonSetting(self::START_LINE, 1),
new CrayonSetting(self::NUMS, TRUE),
new CrayonSetting(self::NUMS_TOGGLE, TRUE),
new CrayonSetting(self::TRIM_WHITESPACE, TRUE),
new CrayonSetting(self::WHITESPACE_BEFORE, 0),
new CrayonSetting(self::WHITESPACE_AFTER, 0),
new CrayonSetting(self::TRIM_CODE_TAG, TRUE),
new CrayonSetting(self::TAB_CONVERT, FALSE),
new CrayonSetting(self::TAB_SIZE, 4),
new CrayonSetting(self::FALLBACK_LANG, CrayonLangs::DEFAULT_LANG),
new CrayonSetting(self::LOCAL_PATH, ''),
new CrayonSetting(self::SCROLL, FALSE),
new CrayonSetting(self::PLAIN, TRUE),
new CrayonSetting(self::PLAIN_TOGGLE, TRUE),
new CrayonSetting(self::SHOW_PLAIN_DEFAULT, FALSE),
new CrayonSetting(self::SHOW_PLAIN,
array(crayon__('On Double Click'), crayon__('On Single Click'), crayon__('On MouseOver'), crayon__('Disable Mouse Events'))),
new CrayonSetting(self::DISABLE_ANIM, FALSE),
new CrayonSetting(self::TOUCHSCREEN, TRUE),
new CrayonSetting(self::DISABLE_RUNTIME, FALSE),
new CrayonSetting(self::DISABLE_DATE, ''),
new CrayonSetting(self::ERROR_LOG, TRUE),
new CrayonSetting(self::ERROR_LOG_SYS, TRUE),
new CrayonSetting(self::ERROR_MSG_SHOW, TRUE),
new CrayonSetting(self::ERROR_MSG, crayon__('An error has occurred. Please try again later.')),
new CrayonSetting(self::HIDE_HELP, FALSE),
new CrayonSetting(self::CACHE, array_keys(self::$cache_array), 1),
new CrayonSetting(self::EFFICIENT_ENQUEUE, FALSE),
new CrayonSetting(self::CAPTURE_PRE, TRUE),
new CrayonSetting(self::CAPTURE_MINI_TAG, FALSE),
new CrayonSetting(self::MIXED, TRUE),
new CrayonSetting(self::SHOW_MIXED, TRUE),
new CrayonSetting(self::PLAIN_TAG, FALSE),
new CrayonSetting(self::ENQUEUE_THEMES, TRUE),
new CrayonSetting(self::ENQUEUE_FONTS, TRUE),
new CrayonSetting(self::MAIN_QUERY, FALSE),
new CrayonSetting(self::SAFE_ENQUEUE, TRUE),
new CrayonSetting(self::INLINE_TAG, TRUE),
new CrayonSetting(self::INLINE_TAG_CAPTURE, FALSE),
new CrayonSetting(self::CODE_TAG_CAPTURE, FALSE),
new CrayonSetting(self::CODE_TAG_CAPTURE_TYPE, array(crayon__('Inline Tag'), crayon__('Block Tag'))),
new CrayonSetting(self::INLINE_MARGIN, 5),
new CrayonSetting(self::INLINE_WRAP, TRUE),
new CrayonSetting(self::BACKQUOTE, TRUE),
new CrayonSetting(self::COMMENTS, TRUE),
new CrayonSetting(self::DECODE, FALSE),
new CrayonSetting(self::DECODE_ATTRIBUTES, TRUE),
// new CrayonSetting(self::TINYMCE_USED, FALSE),
new CrayonSetting(self::ATTR_SEP, array(':', '_')),
new CrayonSetting(self::EXCERPT_STRIP, FALSE),
new CrayonSetting(self::RANGES, TRUE),
new CrayonSetting(self::TAG_EDITOR_FRONT, FALSE),
new CrayonSetting(self::TAG_EDITOR_SETTINGS, TRUE),
new CrayonSetting(self::TAG_EDITOR_ADD_BUTTON_TEXT, crayon__('Add Code')),
new CrayonSetting(self::TAG_EDITOR_EDIT_BUTTON_TEXT, crayon__('Edit Code')),
new CrayonSetting(self::TAG_EDITOR_QUICKTAG_BUTTON_TEXT, 'crayon'),
new CrayonSetting(self::WRAP_TOGGLE, TRUE),
new CrayonSetting(self::WRAP, FALSE),
new CrayonSetting(self::EXPAND, FALSE),
new CrayonSetting(self::EXPAND_TOGGLE, TRUE),
new CrayonSetting(self::MINIMIZE, FALSE),
new CrayonSetting(self::DELAY_LOAD_JS, FALSE)
);
$this->set($settings);
$nonNegs = array(self::FONT_SIZE, self::LINE_HEIGHT, self::HEIGHT, self::WIDTH, self::START_LINE, self::WHITESPACE_BEFORE, self::WHITESPACE_AFTER, self::TAB_SIZE, self::INLINE_MARGIN);
$intNonNegValid = new CrayonNonNegIntValidator();
foreach ($nonNegs as $name) {
$this->get($name)->validator($intNonNegValid);
}
}
// Getter and Setter ======================================================
// TODO this needs simplification
function set($name, $value = NULL, $replace = FALSE) {
// Set associative array of settings
if (is_array($name)) {
$keys = array_keys($name);
foreach ($keys as $key) {
if (is_string($key)) {
// Associative value
$this->set($key, $name[$key], $replace);
} else if (is_int($key)) {
$setting = $name[$key];
$this->set($setting, NULL, $replace);
}
}
} else if (is_string($name) && !empty($name) && $value !== NULL) {
$value = CrayonSettings::validate($name, $value);
if ($replace || !$this->is_setting($name)) {
// Replace/Create
$this->settings[$name] = new CrayonSetting($name, $value);
} else {
// Update
$this->settings[$name]->value($value);
}
} else if (is_object($name) && get_class($name) == CRAYON_SETTING_CLASS) {
$setting = $name; // Semantics
if ($replace || !$this->is_setting($setting->name())) {
// Replace/Create
$this->settings[$setting->name()] = $setting->copy();
} else {
// Update
if ($setting->is_array()) {
$this->settings[$setting->name()]->index($setting->index());
} else {
$this->settings[$setting->name()]->value($setting->value());
}
}
}
}
function get($name = NULL) {
if ($name === NULL) {
$copy = array();
foreach ($this->settings as $name => $setting) {
$copy[$name] = $setting->copy(); // Deep copy
}
return $copy;
} else if (is_string($name)) {
if ($this->is_setting($name)) {
return $this->settings[$name];
}
}
return FALSE;
}
function val($name = NULL) {
if (($setting = self::get($name)) != FALSE) {
return $setting->value();
} else {
return NULL;
}
}
function val_str($name) {
if (($setting = self::get($name)) != FALSE) {
$def = $setting->def();
$index = $setting->value();
if (array_key_exists($index, $def)) {
return $def[$index];
} else {
return NULL;
}
}
}
function get_array() {
$array = array();
foreach ($this->settings as $setting) {
$array[$setting->name()] = $setting->value();
}
return $array;
}
function is_setting($name) {
return (is_string($name) && array_key_exists($name, $this->settings));
}
/* Gets default settings, either as associative array of name=>value or CrayonSetting
objects */
public static function get_defaults($name = NULL, $objects = TRUE) {
if (self::$default === NULL) {
self::$default = new CrayonSettings();
}
if ($name === NULL) {
// Get all settings
if ($objects) {
// Return array of objects
return self::$default->get();
} else {
// Return associative array of name=>value
$settings = self::$default->get();
$defaults = array();
foreach ($settings as $setting) {
$defaults[$setting->name()] = $setting->value();
}
return $defaults;
}
} else {
// Return specific setting
if ($objects) {
return self::$default->get($name);
} else {
return self::$default->get($name)->value();
}
}
}
public static function get_defaults_array() {
return self::get_defaults(NULL, FALSE);
}
// Validation =============================================================
/**
* Validates settings coming from an HTML form and also for internal use.
* This is used when saving form an HTML form to the db, and also when reading from the db
* back into the global settings.
* @param string $name
* @param mixed $value
*/
public static function validate($name, $value) {
if (!is_string($name)) {
return '';
}
// Type-cast to correct value for known settings
if (($setting = CrayonGlobalSettings::get($name)) != FALSE) {
// Booleans settings that are sent as string are allowed to have "false" == false
if (is_bool($setting->def())) {
if (is_string($value)) {
$value = CrayonUtil::str_to_bool($value);
}
} else {
// Ensure we don't cast integer settings to 0 because $value doesn't have any numbers in it
$value = strval($value);
// Only occurs when saving from the form ($_POST values are strings)
if ($value == '' || ($cleaned = $setting->sanitize($value, FALSE)) == '') {
// The value sent has no integers, change to default
$value = $setting->def();
} else {
// Cleaned value is int
$value = $cleaned;
}
// Cast all other settings as usual
if (!settype($value, $setting->type())) {
// If we can't cast, then use default value
if ($setting->is_array()) {
$value = 0; // default index
} else {
$value = $setting->def();
}
}
}
} else {
// If setting not found, remove value
return '';
}
switch ($name) {
case CrayonSettings::LOCAL_PATH:
$path = parse_url($value, PHP_URL_PATH);
// Remove all spaces, prefixed and trailing forward slashes
$path = preg_replace('#^/*|/*$|\s*#', '', $path);
// Replace backslashes
$path = preg_replace('#\\\\#', '/', $path);
// Append trailing forward slash
if (!empty($path)) {
$path .= '/';
}
return $path;
case CrayonSettings::FONT_SIZE:
if ($value < 1) {
$value = 1;
}
break;
case CrayonSettings::LINE_HEIGHT:
$font_size = CrayonGlobalSettings::val(CrayonSettings::FONT_SIZE);
$value = $value >= $font_size ? $value : $font_size;
break;
case CrayonSettings::THEME:
$value = strtolower($value);
// XXX validate settings here
}
// If no validation occurs, return value
return $value;
}
// Takes an associative array of "smart settings" and regular settings. Smart settings can be used
// to configure regular settings quickly.
// E.g. 'max_height="20px"' will set 'height="20"', 'height_mode="0", height_unit="0"'
public static function smart_settings($settings) {
if (!is_array($settings)) {
return FALSE;
}
// If a setting is given, it is automatically enabled
foreach ($settings as $name => $value) {
if (($setting = CrayonGlobalSettings::get($name)) !== FALSE && is_bool($setting->def())) {
$value = CrayonUtil::str_to_bool($value);
}
// XXX removed height and width, since it wasn't using the global settings for mode if only height was provided
if ($name == 'min-height' || $name == 'max-height' /* || $name == 'height'*/) {
self::smart_hw($name, CrayonSettings::HEIGHT_SET, CrayonSettings::HEIGHT_MODE, CrayonSettings::HEIGHT_UNIT, $settings);
} else if ($name == 'min-width' || $name == 'max-width' /* || $name == 'width'*/) {
self::smart_hw($name, CrayonSettings::WIDTH_SET, CrayonSettings::WIDTH_MODE, CrayonSettings::WIDTH_UNIT, $settings);
} else if ($name == CrayonSettings::FONT_SIZE) {
$settings[CrayonSettings::FONT_SIZE_ENABLE] = TRUE;
} else if ($name == CrayonSettings::TOP_MARGIN) {
$settings[CrayonSettings::TOP_SET] = TRUE;
} else if ($name == CrayonSettings::LEFT_MARGIN) {
$settings[CrayonSettings::LEFT_SET] = TRUE;
} else if ($name == CrayonSettings::BOTTOM_MARGIN) {
$settings[CrayonSettings::BOTTOM_SET] = TRUE;
} else if ($name == CrayonSettings::RIGHT_MARGIN) {
$settings[CrayonSettings::RIGHT_SET] = TRUE;
} else if ($name == CrayonSettings::ERROR_MSG) {
$settings[CrayonSettings::ERROR_MSG_SHOW] = TRUE;
} else if ($name == CrayonSettings::H_ALIGN) {
$settings[CrayonSettings::FLOAT_ENABLE] = TRUE;
$value = CrayonUtil::tlower($value);
$values = array('none' => 0, 'left' => 1, 'center' => 2, 'right' => 3);
if (array_key_exists($value, $values)) {
$settings[CrayonSettings::H_ALIGN] = $values[$value];
}
} else if ($name == CrayonSettings::SHOW_LANG) {
$value = CrayonUtil::tlower($value);
$values = array('found' => 0, 'always' => 1, 'true' => 1, 'never' => 2, 'false' => 2);
if (array_key_exists($value, $values)) {
$settings[CrayonSettings::SHOW_LANG] = $values[$value];
}
} else if ($name == CrayonSettings::TOOLBAR) {
if (CrayonUtil::tlower($value) == 'always') {
$settings[CrayonSettings::TOOLBAR] = 1;
} else if (CrayonUtil::str_to_bool($value) === FALSE) {
$settings[CrayonSettings::TOOLBAR] = 2;
}
}
}
return $settings;
}
// Used for height and width smart settings, I couldn't bear to copy paste code twice...
private static function smart_hw($name, $set, $mode, $unit, &$settings) {
if (!is_string($name) || !is_string($set) || !is_string($mode) || !is_string($unit) || !is_array($settings)) {
return;
}
$settings[$set] = TRUE;
if (strpos($name, 'max-') !== FALSE) {
$settings[$mode] = 0;
} else if (strpos($name, 'min-') !== FALSE) {
$settings[$mode] = 1;
} else {
$settings[$mode] = 2;
}
preg_match('#(\d+)\s*([^\s]*)#', $settings[$name], $match);
if (count($match) == 3) {
$name = str_replace(array('max-', 'min-'), '', $name);
$settings[$name] = $match[1];
switch (strtolower($match[2])) {
case 'px':
$settings[$unit] = 0;
break;
case '%':
$settings[$unit] = 1;
break;
}
}
}
}
/**
* Stores global/static copy of CrayonSettings loaded from db.
* These settings can be overriden by individual Crayons.
* Also manages global site settings and paths.
*/
class CrayonGlobalSettings {
// The global settings stored as a CrayonSettings object.
private static $global = NULL;
/* These are used to load local files reliably and prevent scripts like PHP from executing
when attempting to load their code. */
// The URL of the site (eg. http://localhost/example/)
private static $site_http = '';
// The absolute root directory of the site (eg. /User/example/)
private static $site_path = '';
// The absolute root directory of the plugins (eg. /User/example/plugins)
private static $plugin_path = '';
private static $upload_path = '';
private static $upload_url = '';
private static $mkdir = NULL;
private function __construct() {
}
private static function init() {
if (self::$global === NULL) {
self::$global = new CrayonSettings();
}
}
public static function get($name = NULL) {
self::init();
return self::$global->get($name);
}
public static function get_array() {
self::init();
return self::$global->get_array();
}
public static function get_obj() {
self::init();
return self::$global->copy();
}
public static function val($name = NULL) {
self::init();
return self::$global->val($name);
}
public static function val_str($name = NULL) {
self::init();
return self::$global->val_str($name);
}
public static function has_changed($input, $setting, $value) {
return $input == $setting && $value != CrayonGlobalSettings::val($setting);
}
public static function set($name, $value = NULL, $replace = FALSE) {
self::init();
self::$global->set($name, $value, $replace);
}
public static function site_url($site_http = NULL) {
if ($site_http === NULL) {
return self::$site_http;
} else {
self::$site_http = CrayonUtil::url_slash($site_http);
}
}
public static function site_path($site_path = NULL) {
if ($site_path === NULL) {
return self::$site_path;
} else {
self::$site_path = CrayonUtil::path_slash($site_path);
}
}
public static function plugin_path($plugin_path = NULL) {
if ($plugin_path === NULL) {
return self::$plugin_path;
} else {
self::$plugin_path = CrayonUtil::path_slash($plugin_path);
}
}
public static function upload_path($upload_path = NULL) {
if ($upload_path === NULL) {
return self::$upload_path;
} else {
self::$upload_path = CrayonUtil::path_slash($upload_path);
}
}
public static function upload_url($upload_url = NULL) {
if ($upload_url === NULL) {
return self::$upload_url;
} else {
self::$upload_url = CrayonUtil::url_slash($upload_url);
}
}
public static function set_mkdir($mkdir = NULL) {
if ($mkdir === NULL) {
return self::$mkdir;
} else {
self::$mkdir = $mkdir;
}
}
public static function mkdir($dir = NULL) {
if (self::$mkdir) {
call_user_func(self::$mkdir, $dir);
} else {
@mkdir($dir, 0777, TRUE);
}
}
}
$INT = new CrayonValidator('#\d+#');
/**
* Validation class.
*/
class CrayonValidator {
private $pattern = '#*#msi';
public function __construct($pattern) {
$this->pattern($pattern);
}
public function pattern($pattern) {
if ($pattern === NULL) {
return $pattern;
} else {
$this->pattern = $pattern;
}
}
public function validate($str) {
return preg_match($this->pattern, $str) !== FALSE;
}
public function sanitize($str) {
preg_match_all($this->pattern, $str, $matches);
$result = '';
foreach ($matches as $match) {
$result .= $match[0];
}
return $result;
}
}
class CrayonNonNegIntValidator extends CrayonValidator {
public function __construct() {
parent::__construct('#\d+#');
}
}
class CrayonIntValidator extends CrayonValidator {
public function __construct() {
parent::__construct('#-?\d+#');
}
}
/**
* Individual setting.
* Can store boolean, string, dropdown (with array of strings), etc.
*/
class CrayonSetting {
private $name = '';
/* The type of variables that can be set as the value.
* For dropdown settings, value is int, even though value() will return a string. */
private $type = NULL;
private $default = NULL; // stores string array for dropdown settings
private $value = NULL; // stores index int for dropdown settings
private $is_array = FALSE; // only TRUE for dropdown settings
private $locked = FALSE;
private $validator = NULL;
public function __construct($name, $default = '', $value = NULL, $locked = NULL) {
$this->name($name);
if ($default !== NULL) {
$this->def($default); // Perform first to set type
}
if ($value !== NULL) {
$this->value($value);
}
if ($locked !== NULL) {
$this->locked($locked);
}
}
function __tostring() {
return $this->name;
}
function copy() {
return new CrayonSetting($this->name, $this->default, $this->value, $this->locked);
}
function name($name = NULL) {
if (!CrayonUtil::str($this->name, $name)) {
return $this->name;
}
}
function type() {
return $this->type;
}
function is_array() {
return $this->is_array;
}
function locked($locked = NULL) {
if ($locked === NULL) {
return $this->locked;
} else {
$this->locked = ($locked == TRUE);
}
}
/**
* Sets/gets value;
* Value is index (int) in default value (array) for dropdown settings.
* value($value) is alias for index($index) if dropdown setting.
* value() returns string value at current index for dropdown settings.
* @param $value
*/
function value($value = NULL) {
if ($value === NULL) {
/*if ($this->is_array) {
return $this->default[$this->value]; // value at index
} else */
if ($this->value !== NULL) {
return $this->value;
} else {
if ($this->is_array) {
return 0;
} else {
return $this->default;
}
}
} else if ($this->locked === FALSE) {
if ($this->is_array) {
$this->index($value); // $value is index
} else {
settype($value, $this->type); // Type cast
$this->value = $value;
}
}
}
function array_value() {
if ($this->is_array) {
return NULL;
}
return $this->default[$this->value];
}
/**
* Sets/gets default value.
* For dropdown settings, default value is array of all possible value strings.
* @param $default
*/
function def($default = NULL) {
// Only allow default to be set once
if ($this->type === NULL && $default !== NULL) {
// For dropdown settings
if (is_array($default)) { // The only time we don't use $this->is_array
// If empty, set to blank array
if (empty($default)) {
$default = array('');
} else {
// Ensure all values are unique strings
$default = CrayonUtil::array_unique_str($default);
}
$this->value = 0; // initial index
$this->is_array = TRUE;
$this->type = gettype(0); // Type is int (index)
} else {
$this->is_array = FALSE;
$this->type = gettype($default);
if (is_int($default)) {
$this->validator(new CrayonIntValidator());
}
}
$this->default = $default;
} else {
return $this->default;
}
}
/**
* Sets/gets index.
* @param int|string $index
* @return FALSE if not dropdown setting
*/
function index($index = NULL) {
if (!$this->is_array) {
return FALSE;
} else if ($index === NULL) {
return $this->value; // return current index
} else {
if (!is_int($index)) {
// Ensure $value is int for index
$index = intval($index);
}
// Validate index
if ($index < 0 || $index > count($this->default) - 1) {
$index = 0;
}
$this->value = $index;
}
}
/**
* Finds the index of a string in an array setting
*/
function find_index($str) {
if (!$this->is_array || is_string($str)) {
return FALSE;
}
for ($i = 0; $i < count($this->default); $i++) {
if ($this->default[$i] == $str) {
return $i;
}
}
return FALSE;
}
function validator($validator) {
if ($validator === NULL) {
return $this->validator;
} else {
$this->validator = $validator;
}
}
function sanitize($str) {
if ($this->validator != NULL) {
return $this->validator->sanitize($str);
} else {
return $str;
}
}
}
?>

1273
crayon_settings_wp.class.php Normal file

File diff suppressed because it is too large Load Diff

45
crayon_themes.class.php Normal file
View File

@ -0,0 +1,45 @@
<?php
require_once ('global.php');
require_once (CRAYON_RESOURCE_PHP);
/* Manages themes once they are loaded. */
class CrayonThemes extends CrayonUserResourceCollection {
// Properties and Constants ===============================================
const DEFAULT_THEME = 'classic';
const DEFAULT_THEME_NAME = 'Classic';
const CSS_PREFIX = '.crayon-theme-';
private $printed_themes = array();
// Methods ================================================================
function __construct() {
$this->set_default(self::DEFAULT_THEME, self::DEFAULT_THEME_NAME);
$this->directory(CRAYON_THEME_PATH);
$this->relative_directory(CRAYON_THEME_DIR);
$this->extension('css');
CrayonLog::debug("Setting theme directories");
$upload = CrayonGlobalSettings::upload_path();
if ($upload) {
$this->user_directory($upload . CRAYON_THEME_DIR);
if (!is_dir($this->user_directory())) {
CrayonGlobalSettings::mkdir($this->user_directory());
CrayonLog::debug($this->user_directory(), "THEME USER DIR");
}
} else {
CrayonLog::syslog("Upload directory is empty: " . $upload . " cannot load themes.");
}
CrayonLog::debug($this->directory());
CrayonLog::debug($this->user_directory());
}
// XXX Override
public function filename($id, $user = NULL) {
return CrayonUtil::path_slash($id) . parent::filename($id, $user);
}
}
?>

1340
crayon_wp.class.php Normal file

File diff suppressed because it is too large Load Diff

BIN
css/images/crayon_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
css/images/docs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
css/images/donate.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
css/images/facebook.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
css/images/github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
css/images/google.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
css/images/theme_editor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
css/images/twitter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

1
css/min/crayon.min.css vendored Normal file

File diff suppressed because one or more lines are too long

7
css/minify.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/bash
BASEDIR=$(dirname $0)
cd $BASEDIR
source ../util/minify.sh
minify $COLORBOX_PATH/colorbox.css $INPUT_PATH/admin_style.css $INPUT_PATH/crayon_style.css $INPUT_PATH/global_style.css $OUTPUT_PATH/crayon.min.css

285
css/src/admin_style.css Normal file
View File

@ -0,0 +1,285 @@
#crayon-log-wrapper {
/*width: 100%;*/
}
#crayon-main-wrap .form-table th {
width: 100px;
}
#crayon-log {
display: none;
max-height: 200px;
/*width: 100%;
/*resize: vertical;*/
border-color: #DFDFDF;
background-color: white;
border-width: 1px;
border-style: solid;
border-radius: 4px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
margin: 1px;
padding: 3px;
overflow: auto;
white-space: pre;
margin-bottom: 5px;
}
.crayon-span,.crayon-span-5,.crayon-span-10,.crayon-span-50,.crayon-span-100,.crayon-span-110 {
line-height: 24px;
display: inline-block;
}
.crayon-span-5 {
min-width: 5px;
}
.crayon-span-10 {
min-width: 10px;
}
.crayon-span-50 {
min-width: 50px;
}
.crayon-span-100 {
min-width: 100px;
}
.crayon-span-110 {
min-width: 117px;
}
.crayon-span-margin {
margin-left: 5px;
}
#height_mode, #width_mode {
min-width: 65px;
}
.crayon-error {
color: #F00;
}
.crayon-success {
color: #00F;
}
.crayon-warning {
color: #FF8000;
}
.crayon-help {
min-height: 30px;
padding: 5px 10px;
}
.crayon-help .crayon-help-close,
.crayon-help .crayon-help-close:active,
.crayon-help .crayon-help-close:hover {
text-decoration: none;
float: right;
color: #000;
}
.crayon-help span,
.crayon-help a {
margin: 0;
padding: 0;
font-size: 12px;
}
#crayon-log-text {
font: 11px/13px Monaco, 'MonacoRegular', 'Courier New', monospace;
}
#crayon-log-controls {
float: left;
margin-right: 5px;
/*margin: 5px 0px;*/
}
.crayon-table {
font-size: 12px;
border: 1px solid #999;
padding: 0;
margin: 0;
margin-top: 12px;
}
.crayon-table td {
vertical-align: top;
border-bottom: 1px solid #AAA;
padding: 0px 6px;
margin: 0;
background: #EEE;
}
.crayon-table-light td {
background: #F8F8F8;
}
.crayon-table-header td {
font-weight: bold;
background: #CCC;
}
.crayon-table-last td,
.crayon-table tr:last-child td {
border: 0;
}
/*#lang-info {
display: none;
}*/
#lang-info div {
padding: 5px 0px;
}
.crayon-table .not-parsed {
color: #F00;
}
.crayon-table .parsed-with-errors {
color: #FF9900;
}
.crayon-table .successfully-parsed {
color: #77A000;
}
#crayon-live-preview,
#crayon-log-wrapper {
padding: 0px;
width: 100%;
float: left;
clear: both;
}
#crayon-live-preview {
float: none;
padding: 0;
}
#crayon-logo {
text-align: center;
}
#crayon-info,
#crayon-info td {
border: none;
padding: 0 5px;
margin: 0px;
}
.crayon-admin-button {
display: inline-block;
text-align: center;
}
#crayon-subsection-langs-info {
margin-top: 5px;
}
#crayon-theme-editor-admin-buttons {
display: inline;
}
#crayon-theme-editor-admin-buttons .crayon-admin-button {
margin-left: 5px;
}
#crayon-theme-info {
display: table;
padding: 0;
margin: 0;
margin-top: 5px;
}
#crayon-theme-info > div {
display: table-cell;
vertical-align: middle;
}
#crayon-theme-info .content * {
float: left;
}
#crayon-theme-info .field {
font-weight: bold;
}
#crayon-theme-info .field,
#crayon-theme-info .value {
margin-left: 5px;
}
#crayon-theme-info .description.value {
font-style: italic;
color: #999;
}
#crayon-theme-info .type {
text-align: center;
min-width: 120px;
font-weight: bold;
border-right: 1px solid #ccc;
padding-right: 5px;
}
#crayon-theme-info .type.stock {
color: #666;
}
#crayon-theme-info .type.user {
color: #5b9a00;
}
#crayon-editor-table td {
vertical-align: top;
}
.small-icon {
width: 24px;
height: 24px;
display: inline-block;
margin: 5px 5px 0 0;
}
#twitter-icon {
background: url(../images/twitter.png);
}
#gmail-icon {
background: url(../images/google.png);
}
#docs-icon {
background: url(../images/docs.png);
}
#git-icon {
background: url(../images/github.png);
}
#wp-icon {
background: url(../images/wordpress-blue.png);
}
#donate-icon {
background: url(../images/donate.png);
width: 75px;
}
#crayon-donate,
#crayon-donate input {
margin: 0;
display: inline;
padding: 0;
}
#crayon-theme-editor-info a {
text-decoration: none !important;
font-style: italic !important;
color: #666 !important;
}
#crayon-main-wrap .form-table .note {
font-style: italic;
color: #999;
}
#crayon-change-code-text {
width: 400px;
height: 300px;
}

530
css/src/crayon_style.css Normal file
View File

@ -0,0 +1,530 @@
/*
Crayon Syntax Highlighter Structure Style Sheet
- This style sheet is used to structure a Crayon's dimensions and visibility, but does not contain any details regarding
coloring etc.
- Attributes, where possible, are kept flexible such that Themes can customise them.
- Themes are used to add coloring to the Crayon and the syntax highlighting itself.
- Themes can be considered as layers on top of this style sheet.
- Several attributes are marked !important where they are required to remain unchanged by CSS precedence,
which may occur from conflicts with certain Wordpress Themes.
- The attributes in Themes are generally all marked !important to ensure styles are not altered by precedence.
*/
/* General ========================= */
.crayon-syntax {
overflow: hidden !important;
position: relative !important;
direction: ltr;
text-align: left;
box-sizing: border-box;
direction: ltr !important;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-webkit-text-size-adjust: none;
}
.crayon-syntax div {
/* Need !important? */
background: none;
border: none;
padding: 0px;
margin: 0px;
text-align: left;
}
.crayon-syntax.crayon-loading {
visibility: hidden;
}
.crayon-syntax,
.crayon-syntax .crayon-main,
.crayon-syntax .crayon-toolbar,
.crayon-syntax .crayon-info,
.crayon-syntax .crayon-plain,
.crayon-syntax .crayon-code {
/* Dimensions of code */
width: 100%;
}
.crayon-syntax .crayon-main,
.crayon-syntax .crayon-plain {
/* TODO a bug in IE8 causes max-height and overflow:auto to set max-height = height
http://edskes.net/ie8overflowandexpandingboxbugs.htm */
overflow: auto;
}
.crayon-syntax,
.crayon-syntax .crayon-main,
.crayon-syntax .crayon-plain,
.crayon-syntax .crayon-table {
padding: 0px;
margin: 0px;
}
.crayon-syntax-inline {
margin: 0 2px;
padding: 0 2px;
}
.crayon-syntax .crayon-table {
border: none !important;
background: none !important;
padding: 0px !important;
margin-top: 0px !important;
margin-right: 0px !important;
margin-bottom: 0px !important;
width: auto !important;
border-spacing: 0 !important;
border-collapse: collapse !important;
table-layout: auto !important;
}
.crayon-syntax .crayon-table td,
.crayon-syntax .crayon-table tr {
padding: 0 !important;
border: none !important;
background: none;
vertical-align: top !important;
margin: 0 !important;
}
.crayon-syntax .crayon-invisible {
display: none !important;
}
.crayon-plain-tag {
margin-bottom: 12px;
}
/* End General ===================== */
/* Popup ========================= */
.crayon-popup {
}
.crayon-popup .crayon-plain {
display: block !important;
width: 100% !important;
height: 100% !important;
opacity: 100 !important;
position: relative !important;
}
.crayon-popup-window {
background: #fff;
}
/* End Popup ========================= */
/* Line Numbers ==================== */
.crayon-syntax .crayon-num {
text-align: center;
padding: 0 5px;
margin: 0px;
}
/* End Line Numbers ================ */
/* Toolbar & Info ================== */
.crayon-syntax .crayon-toolbar {
position: relative;
overflow: hidden;
z-index: 4;
}
.crayon-syntax .crayon-info {
position: absolute;
overflow: hidden;
display: none;
z-index: 3;
padding: 0px;
/* Must be able to expand! */
min-height: 18px;
line-height: 18px;
}
.crayon-syntax .crayon-info div {
padding: 2px !important;
text-align: center;
}
/*.crayon-syntax .crayon-toolbar,*/
/*.crayon-syntax .crayon-toolbar * {*/
/*height: 18px;*/
/*line-height: 18px;*/
/*padding: 0px;*/
/*}*/
.crayon-syntax .crayon-toolbar span {
padding: 0 4px !important;
}
.crayon-syntax .crayon-toolbar .crayon-button {
display: inline;
float: left !important;
position: relative;
width: 24px;
background-repeat: no-repeat;
/*height: 16px;*/
line-height: 15px;
/*padding: 0px 2px !important;*/
border: none;
/*border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;*/
text-decoration: none;
}
.crayon-toolbar .crayon-button,
.crayon-toolbar .crayon-button:hover,
.crayon-toolbar .crayon-button.crayon-pressed:hover {
background-position: 0px center;
}
.crayon-toolbar .crayon-button.crayon-pressed,
.crayon-toolbar .crayon-button:active,
.crayon-toolbar .crayon-button.crayon-pressed:active {
background-position: -24px 0;
}
.crayon-toolbar .crayon-button.crayon-popup-button .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-popup-button:hover .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed:hover .crayon-button-icon {
background-position: 0 0;
}
.crayon-toolbar .crayon-button.crayon-copy-button .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-copy-button:hover .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed:hover .crayon-button-icon {
background-position: 0 -16px;
}
.crayon-toolbar .crayon-button.crayon-nums-button .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-nums-button:hover .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed:hover .crayon-button-icon {
background-position: 0 -32px;
}
.crayon-toolbar .crayon-button.crayon-plain-button .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-plain-button:hover .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed:hover .crayon-button-icon {
background-position: 0 -48px;
}
.crayon-toolbar .crayon-button.crayon-mixed-button .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-mixed-button:hover .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed:hover .crayon-button-icon {
background-position: 0 -64px;
}
.crayon-toolbar .crayon-button.crayon-minimize .crayon-button-icon {
background-position: 0 -80px;
background-color: transparent !important;
}
.crayon-toolbar .crayon-button.crayon-expand-button .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-expand-button:hover .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed:hover .crayon-button-icon {
background-position: 0 -96px;
}
.crayon-toolbar .crayon-button.crayon-wrap-button .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-wrap-button:hover .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed:hover .crayon-button-icon {
background-position: 0 -112px;
}
/* -- */
.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-popup-button:active .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-popup-button.crayon-pressed:active .crayon-button-icon {
background-position: -24px 0;
}
.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-copy-button:active .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-copy-button.crayon-pressed:active .crayon-button-icon {
background-position: -24px -16px;
}
.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-nums-button:active .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-nums-button.crayon-pressed:active .crayon-button-icon {
background-position: -24px -32px;
}
.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-plain-button:active .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-plain-button.crayon-pressed:active .crayon-button-icon {
background-position: -24px -48px;
}
.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-mixed-button:active .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-mixed-button.crayon-pressed:active .crayon-button-icon {
background-position: -24px -64px;
}
.crayon-toolbar .crayon-button.crayon-minimize .crayon-button-icon {
background-position: -24px -80px;
background-color: transparent !important;
}
.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-expand-button:active .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-expand-button.crayon-pressed:active .crayon-button-icon {
background-position: -24px -96px;
}
.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-wrap-button:active .crayon-button-icon,
.crayon-toolbar .crayon-button.crayon-wrap-button.crayon-pressed:active .crayon-button-icon {
background-position: -24px -112px;
}
/* Language */
.crayon-syntax .crayon-toolbar .crayon-language {
padding-right: 8px !important;
}
.crayon-syntax .crayon-title,
.crayon-syntax .crayon-language {
float: left;
}
/* End Toolbar ===================== */
/* Scrollbar ======================= */
.crayon-main::-webkit-scrollbar,
.crayon-plain::-webkit-scrollbar {
height: 6px;
overflow: visible;
width: 6px;
background: #EEE;
}
.crayon-main::-webkit-scrollbar-thumb,
.crayon-plain::-webkit-scrollbar-thumb {
background-color: #CCC;
background-clip: padding-box;
border: 1px solid #AAA;
box-shadow: inset 0 0 2px #999;
min-height: 8px;
padding: 0;
border-width: 1px;
}
.crayon-main::-webkit-scrollbar-button,
.crayon-plain::-webkit-scrollbar-button {
height: 0;
width: 0;
padding: 0px;
}
.crayon-main::-webkit-scrollbar-track,
.crayon-plain::-webkit-scrollbar-track {
background-clip: padding-box;
border: solid transparent;
border-width: 0 0 0 4px;
border: 1px solid #BBB;
border-right: none;
border-bottom: none;
}
.crayon-main::-webkit-scrollbar-corner,
.crayon-plain::-webkit-scrollbar-corner {
background: #EEE;
}
.crayon-main::-webkit-scrollbar-thumb:hover,
.crayon-plain::-webkit-scrollbar-thumb:hover {
background: #AAA;
border: 1px solid #777;
box-shadow: inset 0 0 2px #777;
}
/* End Scrollbar =================== */
/* Code ============================ */
.crayon-syntax .crayon-pre,
.crayon-syntax pre {
color: #000;
white-space: pre;
margin: 0;
padding: 0;
overflow: visible;
background: none !important;
border: none !important;
tab-size: 4;
}
.crayon-syntax .crayon-line {
padding: 0 5px;
}
.crayon-syntax.crayon-wrapped .crayon-line {
/* width: 500px !important; */
white-space: pre-wrap !important;
/* word-wrap:break-word !important;*/
height: auto;
word-break: break-all;
}
.crayon-syntax-inline .crayon-pre,
.crayon-syntax-inline pre {
white-space: normal;
}
.crayon-syntax-inline-nowrap .crayon-pre,
.crayon-syntax-inline-nowrap pre {
white-space: pre;
}
/* Default Font */
.crayon-syntax /*,
.crayon-syntax **/
{
font-family: Monaco, 'MonacoRegular', 'Courier New', monospace;
font-weight: 500;
}
.crayon-syntax .crayon-toolbar *::selection,
.crayon-syntax .crayon-nums *::selection {
background: transparent;
}
/*
This has been disabled to allow more flexibility in changing font sizes.
.crayon-syntax,
.crayon-syntax .crayon-nums,
.crayon-syntax .crayon-plain,
.crayon-syntax .crayon-pre {
font-size: 12px !important;
line-height: 15px !important;
}
*/
.crayon-table .crayon-nums-content {
white-space: nowrap; /* Prevent wrapping line numbers in some themes */
}
.crayon-syntax .crayon-num,
.crayon-syntax .crayon-pre .crayon-line,
.crayon-syntax .crayon-toolbar *,
.crayon-syntax .crayon-pre * {
font-family: inherit;
font-size: inherit !important;
line-height: inherit !important;
font-weight: inherit !important;
height: inherit;
}
.crayon-syntax .crayon-toolbar .crayon-button .crayon-button-icon {
background-image: url('../images/toolbar/buttons.png');
height: 16px !important;
width: 100%;
position: absolute;
left: 0;
top: 50%;
margin-top: -8px;
}
.crayon-syntax .crayon-toolbar .crayon-tools {
position: absolute;
right: 0;
}
.crayon-syntax.crayon-expanded {
position: absolute !important;
margin: 0 !important;
}
.crayon-syntax.crayon-expanded .crayon-main {
overflow: hidden !important;
}
.crayon-placeholder {
width: 100% !important;
}
.crayon-toolbar-visible .crayon-toolbar {
position: relative !important;
margin-top: 0 !important;
display: block !important;
}
.crayon-syntax.crayon-expanded .crayon-toolbar .crayon-tools {
position: relative;
right: auto;
float: left !important;
}
.crayon-syntax .crayon-plain-wrap {
height: auto !important;
padding: 0 !important;
margin: 0 !important;
}
.crayon-syntax .crayon-plain {
width: 100%;
height: 100%;
position: absolute;
opacity: 0;
padding: 0 5px;
margin: 0px;
border: none;
box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-shadow: none;
border-radius: 0px;
-webkit-box-shadow: none;
-moz-box-shadow: none;
/*white-space: pre-wrap;*/
white-space: pre;
word-wrap: normal;
overflow: auto;
resize: none;
color: #000;
background: #FFF;
}
.crayon-wrapped .crayon-plain {
white-space: pre-wrap;
}
.bbp-body .crayon-syntax {
clear: none !important;
}
/* End Code ======================== */
/* Minimize ================= */
.crayon-minimized .crayon-toolbar {
cursor: pointer;
}
.crayon-minimized .crayon-plain-wrap,
.crayon-minimized .crayon-main,
.crayon-minimized .crayon-toolbar .crayon-tools * {
display: none !important;
}
.crayon-minimized .crayon-toolbar .crayon-tools .crayon-minimize {
display: block !important;
}
.crayon-minimized .crayon-toolbar {
position: relative !important;
}
.crayon-syntax.crayon-minimized .crayon-toolbar {
border-bottom: none !important;
}
/* End Minimize ============= */

302
css/src/global_style.css Normal file
View File

@ -0,0 +1,302 @@
/* TinyMCE */
.crayon-te *, #crayon-te-bar-content {
font-family: "Lucida Grande", Arial, sans-serif !important;
font-size: 12px;
}
.crayon-te input[type="text"], .crayon-te textarea {
background: #F9F9F9;
border: 1px solid #CCC;
box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
padding: 2px 4px;
-webkit-border-radius: 3px;
border-radius: 3px;
border-width: 1px;
border-style: solid;
}
.crayon-te #crayon-code {
font-family: monospace !important;
}
#crayon-te-content, #crayon-te-table {
width: 100%;
height: auto !important;
}
#crayon-range, #crayon-mark {
width: 100px;
}
#crayon-te-table th, #crayon-te-table td {
vertical-align: top;
text-align: left;
}
.rtl #crayon-te-table th, .rtl #crayon-te-table td {
text-align: right;
}
#crayon-te-table .crayon-tr-center td, #crayon-te-table .crayon-tr-center th {
vertical-align: middle;
}
#crayon-te-table .crayon-nowrap {
white-space: nowrap;
}
#crayon-te-bar {
position: absolute;
top: 0;
left: 0;
width: 100%;
}
#crayon-te-bar-content {
border: 1px solid #666;
border-bottom: none;
height: 26px;
line-height: 25px;
padding: 0px 8px;
padding-right: 0;
background-color: #222;
color: #CFCFCF;
}
#crayon-te-bar-content a {
line-height: 25px;
padding: 5px 10px;
color: #DDD;
font-weight: bold;
text-decoration: none !important;
}
#crayon-te-bar-content a:hover {
color: #FFF;
}
.crayon-te-seperator {
color: #666;
margin: 0;
padding: 0;
}
#crayon-te-bar-block {
height: 34px;
width: 100%;
}
#crayon-te-title {
float: left;
}
#crayon-te-controls {
float: right;
}
#crayon-url-th {
vertical-align: top !important;
padding-top: 5px;
}
.crayon-te-heading {
font-size: 14px;
font-weight: bold;
}
#crayon-te-settings-info {
text-align: center;
}
.crayon-te-section {
font-weight: bold;
padding: 0 10px;
}
#crayon-te-sub-section {
margin-left: 10px;
}
#crayon-te-sub-section .crayon-te-section {
font-weight: normal;
padding: 0;
}
#crayon-code {
height: 200px;
white-space: pre;
/*white-space: nowrap;
overflow: auto;*/
}
#crayon-code, #crayon-url {
width: 555px !important;
}
.crayon-disabled {
background: #EEE !important;
}
.qt_crayon_highlight {
background-image: -ms-linear-gradient(bottom, #daf2ff, white) !important;
background-image: -moz-linear-gradient(bottom, #daf2ff, white) !important;
background-image: -o-linear-gradient(bottom, #daf2ff, white) !important;
background-image: -webkit-linear-gradient(bottom, #daf2ff, white) !important;
background-image: linear-gradient(bottom, #daf2ff, white) !important;
}
.qt_crayon_highlight:hover {
background: #ddebf2 !important;
}
.crayon-tag-editor-button-wrapper {
display: inline-block;
}
/* TinyMCE v4 */
.mce_crayon_tinymce {
padding: 0 !important;
margin: 2px 3px !important;
}
.mce-i-crayon_tinymce,
.mce_crayon_tinymce {
background: url(../images/crayon_tinymce.png) 0 0 !important;
}
/* TinyMCE v3 - deprecated */
a.mce_crayon_tinymce {
background-position: 2px 0 !important;
}
.wp_themeSkin .mceButtonEnabled:hover span.mce_crayon_tinymce,
.wp_themeSkin .mceButtonActive span.mce_crayon_tinymce {
background-position: -20px 0;
}
.wp_themeSkin span.mce_crayon_tinymce {
background: none !important;
}
#crayon-te-table {
margin-top: 26px;
padding: 10px;
border-collapse: separate !important;
border-spacing: 2px !important;
}
#crayon-te-table th {
width: 100px;
}
#crayon-te-clear {
margin-left: 10px;
color: #666;
background-color: #f4f4f4;
border: 1px solid #CCC;
border-radius: 3px;
margin-left: 8px;
}
#crayon-title {
width: 360px;
}
#TB_window.crayon-te-ajax {
overflow: auto !important;
}
#TB_window.crayon-te-ajax, #TB_window.crayon-te-ajax #TB_ajaxContent, #TB_window.crayon-te-ajax #TB_title {
width: 680px !important;
}
#TB_window.crayon-te-ajax #TB_ajaxContent {
padding: 0 !important;
margin: 0 !important;
width: 100% !important;
height: auto !important;
margin-top: 28px !important;
}
#TB_window.crayon-te-ajax #TB_title {
position: fixed !important;
}
#TB_window.crayon-te-ajax #TB_title .crayon-te-submit {
margin-top: 3px !important;
float: right !important;
}
#TB_window.crayon-te-ajax a {
color: #2587e2;
text-decoration: none;
}
#TB_window.crayon-te-ajax a:hover {
color: #499ce9;
}
.crayon-te-quote {
background: #DDD;
padding: 0 2px;
}
#crayon-te-submit-wrapper {
display: none;
}
#crayon-te-clear {
display: none;
margin: 0;
margin-top: 10px;
}
.crayon-syntax-pre {
background: red;
white-space: pre;
overflow: auto;
display: block;
word-wrap: break-word;
}
.crayon-question {
padding: 1px 4px !important;
text-decoration: none !important;
color: #83b3cb !important;
border-radius: 10px !important;
height: 15px !important;
width: 15px !important;
}
.crayon-question:hover {
background: #83b3cb !important;
color: white !important;
height: 15px !important;
width: 15px !important;
}
.crayon-setting {
}
.crayon-setting-changed, .crayon-setting-selected {
background: #fffaad !important;
}
.crayon-question:hover {
color: white;
background: #a6d6ef;
}
#crayon-te-warning {
display: none;
}
.crayon-te-info {
padding: 5px !important;
margin: 2px 0 !important;
}
#crayon-te-submit {
margin-bottom: 5px;
}

View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'AdobeSourceSansSemibold';
src: url('adobe-source-sans/SourceSansPro-Semibold.eot');
src: url('adobe-source-sans/SourceSansPro-Semibold.eot?#iefix') format('embedded-opentype'),
url('adobe-source-sans/SourceSansPro-Semibold.otf.woff') format('woff'),
url('adobe-source-sans/SourceSansPro-Semibold.ttf.woff') format('truetype'),
url('adobe-source-sans/SourceSansPro-Semibold.svg#AdobeSourceSansSemibold') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-adobe-source-sans * {
font-family: AdobeSourceSans, 'AdobeSourceSansSemibold', 'Courier New', monospace !important;
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

3
fonts/arial.css Normal file
View File

@ -0,0 +1,3 @@
.crayon-font-arial * {
font-family: Arial, sans-serif !important;
}

14
fonts/consolas.css Normal file
View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'ConsolasRegular';
src: url('consolas/consolas-webfont.eot');
src: url('consolas/consolas-webfont.eot?#iefix') format('embedded-opentype'),
url('consolas/consolas-webfont.woff') format('woff'),
url('consolas/consolas-webfont.ttf') format('truetype'),
url('consolas/consolas-webfont.svg#ConsolasRegular') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-consolas * {
font-family: Consolas, 'ConsolasRegular', 'Courier New', monospace !important;
}

Binary file not shown.

View File

@ -0,0 +1,261 @@
<?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>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : 2005 Microsoft Corporation All Rights Reserved
Designer : Lucas de Groot
Foundry : Microsoft Corporation
Foundry URL : httpwwwmicrosoftcomtypographyctfonts
</metadata>
<defs>
<font id="ConsolasRegular" horiz-adv-x="1126" >
<font-face units-per-em="2048" ascent="1521" descent="-527" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M428 113q0 27 10.5 51.5t28.5 42.5t42 28.5t52 10.5q27 0 51 -10.5t41.5 -28.5t28 -42.5t10.5 -51.5t-10.5 -51t-28 -41.5t-41.5 -28t-51 -10.5q-28 0 -52 10.5t-42 28t-28.5 41.5t-10.5 51zM455 1413h211l-27 -1030h-154z" />
<glyph unicode="&#x22;" d="M258 1413h221l-28 -469h-164zM647 1413h221l-28 -469h-164z" />
<glyph unicode="#" d="M43 367v130h226l36 350h-211v130h224l34 330h146l-33 -330h256l34 330h148l-35 -330h215v-130h-228l-35 -350h210v-130h-223l-37 -367h-148l37 367h-255l-37 -367h-148l37 367h-213zM417 497h256l35 350h-256z" />
<glyph unicode="$" d="M111 45v166q63 -22 137.5 -36t165.5 -19l59 450q-65 25 -128 54t-112.5 69.5t-80.5 95.5t-31 131q0 62 26 122.5t81 109t139 80t200 37.5l25 190h145l-26 -195q52 -5 104.5 -13t97.5 -19v-154q-55 14 -111 24t-110 15l-57 -428q67 -26 133 -56.5t118.5 -72t85 -98.5 t32.5 -136q0 -84 -34 -149t-95 -110t-147 -70.5t-189 -30.5l-33 -238h-146l33 238q-81 6 -154.5 17.5t-127.5 25.5zM307 975q0 -69 47.5 -113.5t141.5 -81.5l51 375q-125 -11 -182.5 -58.5t-57.5 -121.5zM559 156q135 10 196.5 60t61.5 136q0 36 -13 64.5t-39 51.5t-64.5 43 t-90.5 40z" />
<glyph unicode="%" d="M20 0l920 1413h166l-922 -1413h-164zM37 1124q0 64 19 119.5t54.5 96.5t86 64t112.5 23q61 0 109.5 -19t83 -56t53 -92t18.5 -127q0 -65 -19 -120.5t-54.5 -96t-86 -64t-112.5 -23.5q-61 0 -109.5 19t-83 56.5t-53 92.5t-18.5 127zM184 1128q0 -88 32 -130t89 -42 q29 0 51.5 13t38 36t23.5 54.5t8 68.5q0 88 -32 130t-89 42q-29 0 -51.5 -13t-38 -36t-23.5 -54.5t-8 -68.5zM553 281q0 64 19 119.5t54.5 96.5t86 64t112.5 23q61 0 110 -19t83.5 -56.5t53 -92.5t18.5 -127q0 -65 -19.5 -120t-55 -96t-86 -64t-112.5 -23q-61 0 -109.5 19 t-83 56t-53 92.5t-18.5 127.5zM700 285q0 -88 32 -130t89 -42q29 0 51.5 13t38.5 36t24 54.5t8 68.5q0 88 -32.5 130t-89.5 42q-29 0 -51.5 -13t-38 -36t-23.5 -54.5t-8 -68.5z" />
<glyph unicode="&#x26;" d="M57 352q0 76 20 135.5t54 106t78.5 82t93.5 65.5l-22 31q-56 69 -83.5 140t-27.5 139q0 72 23 133t67.5 105.5t110 69.5t149.5 25q81 0 142 -23t102 -63t61.5 -92.5t20.5 -111.5q0 -75 -25.5 -131.5t-67 -100t-95 -77.5t-109.5 -66l258 -322q44 118 41 285h176 q0 -131 -26 -238t-74 -192l202 -252h-231l-88 109q-71 -60 -158.5 -91.5t-189.5 -31.5q-97 0 -172 27t-126 75.5t-77.5 115.5t-26.5 148zM238 373q0 -53 17 -97t48.5 -75.5t77 -48.5t102.5 -17q130 0 228 96l-318 398q-34 -23 -62.5 -49t-49 -57t-32 -68t-11.5 -82z M350 1067q0 -54 20 -100.5t64 -102.5l27 -35q43 24 81 48.5t66.5 54t45 65t16.5 80.5q0 75 -42 117.5t-114 42.5q-40 0 -70.5 -13t-51.5 -36t-31.5 -54t-10.5 -67z" />
<glyph unicode="'" d="M449 1413h229l-29 -469h-172z" />
<glyph unicode="(" d="M300 524q0 121 24.5 241.5t79 241.5t144 242t217.5 240l101 -103q-388 -383 -388 -849q0 -232 98 -446t290 -404l-105 -107q-461 427 -461 944z" />
<glyph unicode=")" d="M260 -317q195 193 291 403t96 440q0 476 -387 856l105 107q461 -427 461 -950q0 -108 -22 -224t-75 -237.5t-142.5 -246.5t-225.5 -251z" />
<glyph unicode="*" d="M164 838l307 151l-307 154l69 117l283 -189l-24 342h143l-25 -342l283 191l70 -123l-308 -152l306 -147l-68 -119l-281 186l23 -342h-143l22 342l-287 -186z" />
<glyph unicode="+" d="M84 469v152h393v405h172v-405h393v-152h-393v-408h-172v408h-393z" />
<glyph unicode="," d="M238 -205q51 -2 99 9t84.5 32.5t58.5 53.5t22 73q0 42 -14.5 68t-32.5 48t-32.5 47t-14.5 67q0 21 8 44t24.5 42t42 31t60.5 12t67.5 -14.5t57 -44.5t39 -75t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35v137z" />
<glyph unicode="-" d="M264 463v164h598v-164h-598z" />
<glyph unicode="." d="M389 147q0 35 13 65.5t35.5 53.5t52.5 36t65 13q34 0 64.5 -13t53 -36t35.5 -53.5t13 -65.5q0 -34 -13 -64t-35.5 -52.5t-53 -35.5t-64.5 -13q-35 0 -65 13t-52.5 35.5t-35.5 52.5t-13 64z" />
<glyph unicode="/" d="M115 -215l686 1628h166l-686 -1628h-166z" />
<glyph unicode="0" d="M88 653q0 150 30.5 274t91 212.5t151.5 137t212 48.5q105 0 191 -39.5t147 -122t94 -209.5t33 -301q0 -150 -30 -273.5t-91 -212t-151.5 -137t-212.5 -48.5q-105 0 -191 39.5t-147 121.5t-94 209t-33 301zM264 659q0 -31 0.5 -62t3.5 -60l553 409q-15 51 -38 93t-55 72.5 t-73 47.5t-92 17q-68 0 -123.5 -33t-94.5 -98.5t-60 -162t-21 -223.5zM301 369q15 -52 38 -96t55.5 -75.5t74 -49t94.5 -17.5q68 0 123.5 33t94.5 98t60 161.5t21 223.5q0 34 -2.5 67.5t-5.5 65.5z" />
<glyph unicode="1" d="M135 1094l416 219h154v-1151h292v-162h-821v162h336v954l-313 -170z" />
<glyph unicode="2" d="M147 0v156l338 336q83 82 135 142t81 109.5t39 93.5t10 95q0 48 -13 91.5t-40 76.5t-70 52t-103 19q-83 0 -151 -37t-125 -96l-96 115q74 78 170.5 125t224.5 47q87 0 158.5 -26t123.5 -75t80.5 -120t28.5 -160q0 -75 -20 -139t-60.5 -127.5t-102 -131.5t-145.5 -149 l-237 -231h635v-166h-861z" />
<glyph unicode="3" d="M164 0v156q62 -11 131 -17t141 -6q98 0 167.5 17.5t113.5 50.5t64 80t20 106q0 54 -24 94t-67.5 67t-104 40.5t-132.5 13.5h-149v143h151q59 0 107.5 15.5t83 44.5t53 71.5t18.5 96.5q0 105 -64 153t-188 48q-66 0 -136 -13t-150 -39v152q34 12 72.5 21.5t77 16t76.5 10 t73 3.5q104 0 183 -22.5t132 -64.5t80 -102t27 -135q0 -112 -57.5 -188t-157.5 -121q51 -8 100.5 -32t89 -61.5t64 -88.5t24.5 -113q0 -86 -35 -161.5t-105 -132t-176 -89t-247 -32.5q-78 0 -140 5t-116 13z" />
<glyph unicode="4" d="M43 289v153l557 865h250v-865h223v-153h-223v-289h-178v289h-629zM217 442h455v697z" />
<glyph unicode="5" d="M178 0v158q54 -13 123.5 -19t140.5 -6q80 0 144 19t109 54.5t69 86t24 113.5q0 122 -87.5 177.5t-251.5 55.5h-248v668h704v-152h-540v-367h114q94 0 183 -17t158.5 -59.5t112 -114t42.5 -179.5q0 -97 -42 -177t-115.5 -137.5t-173.5 -89.5t-216 -32q-29 0 -62.5 1.5 t-66.5 4t-64.5 5.5t-56.5 7z" />
<glyph unicode="6" d="M123 561q0 100 13 194t43 177t80 152t124.5 118.5t175.5 77t234 27.5h129v-152h-140q-117 0 -203 -28t-144 -79t-89 -123t-39 -161l-4 -41q63 37 145.5 59.5t178.5 22.5q99 0 173.5 -29t124 -80.5t74.5 -123.5t25 -158q0 -90 -32.5 -169t-92.5 -137.5t-144.5 -92 t-187.5 -33.5q-108 0 -191 34.5t-139 106t-85 180.5t-29 258zM303 575q0 -129 18 -215.5t53.5 -138.5t87.5 -74t120 -22q57 0 104.5 18.5t82 54.5t54 87.5t19.5 117.5q0 60 -14.5 108.5t-45.5 82t-78.5 52t-113.5 18.5q-38 0 -77 -7t-76.5 -19.5t-71.5 -28.5t-62 -34z" />
<glyph unicode="7" d="M117 1145v162h884v-162l-548 -1145h-199l569 1145h-706z" />
<glyph unicode="8" d="M119 305q0 120 67 207t207 158q-128 65 -187 144.5t-59 182.5q0 63 26 122t78.5 105t131.5 73.5t186 27.5q101 0 177.5 -21.5t128.5 -61.5t78 -97t26 -127q0 -114 -63.5 -194t-180.5 -140q58 -29 108 -64t87 -78t57.5 -96t20.5 -118q0 -83 -34 -147.5t-95 -108.5 t-144 -67t-180 -23q-107 0 -188.5 24t-136.5 67t-83 102t-28 130zM307 317q0 -45 19.5 -79.5t53.5 -58.5t81 -36t102 -12q53 0 100 11t81.5 33.5t54.5 57t20 82.5q0 37 -12 72t-43 69t-83 68t-132 70q-68 -33 -114.5 -65.5t-75 -66t-40.5 -69.5t-12 -76zM326 1008 q0 -39 15 -72t46.5 -62t78.5 -57t112 -57q113 53 168 110.5t55 133.5q0 89 -62.5 132.5t-175.5 43.5q-112 0 -174.5 -43t-62.5 -129z" />
<glyph unicode="9" d="M100 891q0 91 33 170t92.5 137.5t142.5 92.5t183 34q97 0 179.5 -32t142.5 -103.5t94 -185.5t34 -277q0 -191 -46 -328.5t-136 -226t-223 -130.5t-307 -42h-109v152h121q129 0 223 26t156.5 76.5t95.5 123t41 165.5l4 41q-63 -37 -145 -59.5t-178 -22.5q-99 0 -174 29 t-124.5 81t-74.5 123.5t-25 155.5zM283 903q0 -61 14.5 -109t45 -81.5t78.5 -51.5t114 -18q37 0 76.5 7t77 19t71.5 28t61 34q0 129 -19 215.5t-55 139t-87.5 74.5t-116.5 22q-56 0 -103.5 -18.5t-82 -54t-54.5 -87.5t-20 -119z" />
<glyph unicode=":" d="M410 135q0 31 12 59t33 49t48.5 33.5t59.5 12.5q31 0 59 -12.5t49 -33.5t33.5 -49t12.5 -59q0 -32 -12.5 -59.5t-33.5 -48.5t-49 -33t-59 -12q-32 0 -59.5 12t-48.5 33t-33 48.5t-12 59.5zM410 868q0 31 12 59t33 49t48.5 33.5t59.5 12.5q31 0 59 -12.5t49 -33.5 t33.5 -49t12.5 -59q0 -32 -12.5 -59.5t-33.5 -48.5t-49 -33t-59 -12q-32 0 -59.5 12t-48.5 33t-33 48.5t-12 59.5z" />
<glyph unicode=";" d="M250 -205q51 -2 99 9t84.5 32.5t58.5 53.5t22 73q0 42 -14.5 68t-32.5 48t-32.5 47t-14.5 67q0 21 8 44t24.5 42t42 31t60.5 12t67.5 -14.5t57 -44.5t39 -75t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35v137zM410 868q0 31 12 59t33 49t48.5 33.5 t59.5 12.5q31 0 59 -12.5t49 -33.5t33.5 -49t12.5 -59q0 -32 -12.5 -59.5t-33.5 -48.5t-49 -33t-59 -12q-32 0 -59.5 12t-48.5 33t-33 48.5t-12 59.5z" />
<glyph unicode="&#x3c;" d="M137 545l672 561l109 -111l-545 -448l545 -453l-109 -110z" />
<glyph unicode="=" d="M133 298v147h860v-147h-860zM133 646v147h860v-147h-860z" />
<glyph unicode="&#x3e;" d="M209 94l545 449l-545 452l108 111l672 -561l-672 -561z" />
<glyph unicode="?" d="M303 1257v156h27q101 0 184.5 -19t149 -51.5t114 -76.5t81 -93t48 -101.5t15.5 -102.5q0 -162 -90 -245.5t-261 -94.5l-8 -246h-149l-13 383h117q61 0 102 13t66 37t36 58.5t11 77.5q0 73 -30 130t-84 96t-128.5 59t-162.5 20h-25zM356 113q0 27 10 51.5t28 42.5t42 28.5 t51 10.5q28 0 52 -10.5t41.5 -28.5t27.5 -42.5t10 -51.5t-10 -51t-27.5 -41.5t-41.5 -28t-52 -10.5q-27 0 -51 10.5t-42 28t-28 41.5t-10 51z" />
<glyph unicode="@" d="M10 344q-1 151 20 289.5t60.5 258.5t96 218.5t128 168t155.5 108t179 38.5q119 0 206.5 -48.5t144.5 -140t84.5 -224.5t27.5 -303q-1 -172 -22.5 -294.5t-60.5 -200.5t-94.5 -114.5t-123.5 -36.5q-78 0 -116 40t-38 108q-38 -77 -82 -112.5t-106 -35.5q-94 0 -141 70.5 t-47 222.5q0 55 6.5 118t22 126.5t40.5 122t61.5 103t86.5 71.5t114 27q38 0 71 -9t48 -18l129 31l-80 -520q-9 -64 -10 -106t5.5 -66t20.5 -33.5t35 -9.5q28 0 53 29.5t44.5 91t31 155.5t11.5 223q0 144 -18 257t-57 192t-101.5 120.5t-151.5 41.5q-68 0 -131.5 -34.5 t-118 -97t-99 -150t-76 -193.5t-49 -228t-17.5 -254q0 -322 97 -480.5t273 -158.5q89 0 166 20.5t160 61.5v-129q-82 -38 -164 -57t-172 -19q-255 0 -377.5 191t-124.5 569zM440 373q0 -96 12 -138t46 -42q12 0 24 5t25.5 19.5t29.5 40.5t35 68l66 438q-9 12 -27.5 21.5 t-46.5 9.5q-30 0 -54 -21t-42.5 -56t-31 -79.5t-21 -91.5t-12 -92.5t-3.5 -81.5z" />
<glyph unicode="A" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699z" />
<glyph unicode="B" d="M158 0v1307h374q437 0 437 -318q0 -106 -50.5 -182t-164.5 -113q53 -10 100.5 -34t83.5 -62t57 -90t21 -117q0 -94 -36.5 -166.5t-104 -122.5t-163 -76t-212.5 -26h-342zM336 150h188q153 0 228 57t75 178q0 50 -21 90t-61 67.5t-97.5 42.5t-129.5 15h-182v-450zM336 748 h178q61 0 110.5 13t85 40t55 67.5t19.5 96.5q0 40 -12 75.5t-42 61t-81 40.5t-129 15h-184v-409z" />
<glyph unicode="C" d="M92 639q0 157 41 284t117 215.5t184 136.5t242 48q91 0 169 -15.5t150 -47.5v-175q-71 39 -147 59.5t-166 20.5q-92 0 -166.5 -34.5t-126.5 -100t-80 -160t-28 -215.5q0 -254 103 -383t302 -129q84 0 161 19.5t148 54.5v-168q-157 -65 -329 -65q-277 0 -425.5 165.5 t-148.5 489.5z" />
<glyph unicode="D" d="M109 0v1307h337q306 0 456.5 -157.5t150.5 -481.5q0 -94 -14.5 -180t-46.5 -160t-83 -134.5t-125 -103.5t-172 -66.5t-223 -23.5h-280zM287 154h133q446 0 446 501q0 139 -26 235t-79 155t-133 85.5t-188 26.5h-153v-1003z" />
<glyph unicode="E" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743z" />
<glyph unicode="F" d="M205 0v1307h737v-152h-555v-424h526v-149h-526v-582h-182z" />
<glyph unicode="G" d="M66 639q0 161 45 288.5t126.5 216t196 135t252.5 46.5q88 0 167.5 -15.5t152.5 -49.5v-177q-73 39 -150 60.5t-168 21.5q-104 0 -185 -37t-136.5 -104.5t-85 -162.5t-29.5 -210q0 -120 24 -215t75 -161t130.5 -101t190.5 -35q19 0 41 2t44 5.5t42.5 8.5t36.5 11v416h-267 v147h443v-668q-41 -19 -86.5 -34t-93 -25t-94.5 -15t-91 -5q-134 0 -241.5 42t-183 124.5t-116 205.5t-40.5 285z" />
<glyph unicode="H" d="M111 0v1307h178v-553h549v553h178v-1307h-178v600h-549v-600h-178z" />
<glyph unicode="I" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782z" />
<glyph unicode="J" d="M182 59v179q62 -45 137.5 -71t149.5 -26q109 0 168 66.5t59 191.5v754h-497v154h678v-908q0 -84 -25 -159.5t-76 -131.5t-128 -89t-181 -33q-39 0 -79.5 5.5t-78 15t-70.5 23t-57 29.5z" />
<glyph unicode="K" d="M156 0v1307h178v-607l479 607h211l-516 -621l539 -686h-224l-489 641v-641h-178z" />
<glyph unicode="L" d="M233 0v1307h181v-1155h571v-152h-752z" />
<glyph unicode="M" d="M49 0l64 1307h211l176 -492l57 -166l55 166l185 492h217l63 -1307h-174l-26 815l-11 313l-61 -182l-193 -520h-123l-184 500l-61 202l-4 -327l-23 -801h-168z" />
<glyph unicode="N" d="M119 0v1307h229l363 -772l131 -299v700v371h166v-1307h-232l-381 815l-110 262v-659v-418h-166z" />
<glyph unicode="O" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5z" />
<glyph unicode="P" d="M158 0v1307h368q97 0 186 -21.5t156.5 -69.5t107.5 -124t40 -185q0 -80 -30 -158.5t-93 -140.5t-161 -100.5t-234 -38.5h-162v-469h-178zM336 621h166q158 0 243.5 69t85.5 209q0 126 -82.5 193t-230.5 67h-182v-538z" />
<glyph unicode="Q" d="M57 637q0 178 41 308t111.5 214.5t164.5 125t199 40.5q126 0 219.5 -45.5t155.5 -131t92.5 -207t30.5 -273.5q0 -160 -34 -280.5t-93 -204.5t-139 -132t-172 -63q15 -88 70 -141.5t155 -53.5q48 0 94.5 16t94.5 54l79 -123q-66 -54 -136 -77t-144 -23q-80 0 -147 22 t-116.5 65.5t-79.5 109t-36 151.5q-104 15 -181 66t-128 134.5t-76 197t-25 251.5zM242 664q0 -119 18 -215.5t56.5 -165.5t99.5 -106.5t147 -37.5q84 0 145 40t100.5 109t58.5 161.5t19 197.5q0 116 -17.5 211.5t-56.5 164t-100.5 106.5t-148.5 38q-84 0 -144.5 -40 t-99.5 -108.5t-58 -160t-19 -194.5z" />
<glyph unicode="R" d="M170 0v1307h350q114 0 196 -25t134.5 -70t77 -108.5t24.5 -140.5q0 -61 -18 -115.5t-53.5 -99t-88 -77t-120.5 -48.5q55 -19 93.5 -66.5t78.5 -126.5l207 -430h-201l-195 418q-22 48 -45 79.5t-49.5 50t-58 26.5t-70.5 8h-84v-582h-178zM348 725h144q63 0 113.5 14.5 t86 43t55 70t19.5 95.5q0 105 -65.5 157t-184.5 52h-168v-432z" />
<glyph unicode="S" d="M111 27v172q75 -28 168.5 -44t212.5 -16q86 0 146.5 13.5t99 40t56 64.5t17.5 87q0 53 -29.5 90.5t-77.5 67t-109.5 54t-125.5 50.5t-125.5 56.5t-109.5 72t-77.5 97.5t-29.5 133q0 67 28 132t87 115.5t151.5 81.5t220.5 31q33 0 71.5 -3t78 -8.5t78 -12.5t71.5 -15v-160 q-77 22 -154 33.5t-149 11.5q-153 0 -225 -51t-72 -137q0 -53 29.5 -91t77.5 -68t109.5 -54.5t125.5 -50.5t125.5 -57t109.5 -73.5t77.5 -99.5t29.5 -135q0 -93 -38 -163t-106 -116.5t-163.5 -69.5t-210.5 -23q-52 0 -103.5 4t-99 10t-89.5 14t-76 17z" />
<glyph unicode="T" d="M86 1155v152h954v-152h-387v-1155h-180v1155h-387z" />
<glyph unicode="U" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183z" />
<glyph unicode="V" d="M4 1307h201l282 -881l80 -258l82 258l283 881h190l-444 -1307h-240z" />
<glyph unicode="W" d="M45 1307h168l51 -889l15 -244l63 207l158 485h123l182 -520l61 -172l4 180l52 953h159l-88 -1307h-231l-162 465l-45 149l-47 -161l-150 -453h-223z" />
<glyph unicode="X" d="M18 0l435 668l-400 639h211l299 -492l301 492h205l-401 -631l434 -676h-225l-318 528l-319 -528h-222z" />
<glyph unicode="Y" d="M0 1307h215l260 -478l96 -192l88 174l263 496h204l-473 -840v-467h-180v471z" />
<glyph unicode="Z" d="M111 0v133l671 1012h-653v162h872v-140l-667 -1001h680v-166h-903z" />
<glyph unicode="[" d="M345 -410v1858h493v-140h-327v-1578h327v-140h-493z" />
<glyph unicode="\" d="M160 1413h166l686 -1628h-166z" />
<glyph unicode="]" d="M288 -270h325v1578h-325v140h493v-1858h-493v140z" />
<glyph unicode="^" d="M121 668l366 639h142l385 -639h-174l-289 501l-272 -501h-158z" />
<glyph unicode="_" d="M0 -266h1126v-144h-1126v144z" />
<glyph unicode="`" d="M0 1004zM174 1413h252l242 -242h-174z" />
<glyph unicode="a" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5z" />
<glyph unicode="b" d="M160 59v1354h174v-389l-8 -186q75 101 160.5 142.5t183.5 41.5q86 0 151 -36t109 -101.5t66 -158t22 -206.5q0 -125 -34.5 -223.5t-98 -167t-154.5 -105t-205 -36.5q-89 0 -182 17t-184 54zM334 172q51 -20 104 -31.5t101 -11.5q60 0 114.5 19t96 63.5t66 118t24.5 182.5 q0 79 -11.5 145t-36.5 113t-64 73.5t-93 26.5q-33 0 -67 -10.5t-70.5 -35t-77 -65t-86.5 -100.5v-487z" />
<glyph unicode="c" d="M158 492q0 119 37 216t104 166t160 106.5t205 37.5q78 0 146 -11t130 -36v-166q-65 34 -132.5 49.5t-139.5 15.5q-67 0 -126.5 -25.5t-104.5 -73.5t-71 -117t-26 -156q0 -182 88.5 -272.5t245.5 -90.5q71 0 137.5 16t128.5 48v-162q-68 -26 -139.5 -38.5t-147.5 -12.5 q-238 0 -366.5 129t-128.5 377z" />
<glyph unicode="d" d="M109 481q0 128 35 227.5t99.5 168t155 104t201.5 35.5q48 0 94.5 -6t91.5 -19v422h175v-1413h-156l-6 190q-73 -106 -158 -157t-184 -51q-86 0 -151.5 36t-109 101.5t-65.5 157.5t-22 204zM287 492q0 -182 53.5 -271.5t151.5 -89.5q66 0 139.5 59t154.5 175v466 q-43 20 -95 30.5t-103 10.5q-142 0 -221.5 -92t-79.5 -288z" />
<glyph unicode="e" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123z" />
<glyph unicode="f" d="M0 1004zM80 713v145h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323z" />
<glyph unicode="g" d="M94 -160q0 73 34 128t105 106q-26 12 -45 30t-31 39.5t-18 45.5t-6 47q0 65 30.5 119t72.5 102q-19 23 -33.5 45t-25 47.5t-16 55t-5.5 67.5q0 78 28.5 142.5t80 110.5t124 71.5t160.5 25.5q37 0 71 -5t60 -13h364v-142h-161q28 -35 43.5 -81.5t15.5 -100.5 q0 -78 -28.5 -142.5t-80.5 -110.5t-124.5 -71.5t-159.5 -25.5q-63 0 -118 13.5t-87 33.5q-19 -28 -32 -53t-13 -56q0 -38 36.5 -63t96.5 -27l264 -10q75 -2 138.5 -19t109 -49t71 -79t25.5 -109q0 -67 -29 -127t-89.5 -105.5t-153.5 -72.5t-221 -27q-122 0 -207.5 19.5 t-140.5 54t-80 82t-25 104.5zM279 -145q0 -71 74 -103.5t206 -32.5q83 0 139.5 15t91 39.5t49.5 56t15 64.5q0 61 -50 90t-153 34l-262 9q-33 -22 -54.5 -43t-33.5 -42.5t-17 -43t-5 -43.5zM332 676q0 -48 16 -88t45 -68t68.5 -43.5t87.5 -15.5q52 0 92.5 17.5t68 47.5 t42 69t14.5 81q0 48 -16 88t-45 68t-68.5 43.5t-87.5 15.5q-52 0 -92.5 -18t-68 -47.5t-42 -68.5t-14.5 -81z" />
<glyph unicode="h" d="M160 0v1413h174v-409l-6 -158q41 49 80.5 82.5t79 54.5t80.5 30t85 9q150 0 232 -91.5t82 -275.5v-655h-174v641q0 116 -43.5 173.5t-124.5 57.5q-35 0 -65.5 -9.5t-63.5 -33t-72 -63.5t-90 -100v-666h-174z" />
<glyph unicode="i" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM426 1288q0 29 10.5 53.5t29 43.5t43.5 29.5t54 10.5t54 -10.5t43.5 -29.5t29 -43.5t10.5 -53.5q0 -28 -10.5 -53t-29 -44t-43.5 -29.5t-54 -10.5t-54 10.5t-43.5 29.5t-29 44t-10.5 53z" />
<glyph unicode="j" d="M131 -203q31 -16 66.5 -29t73 -22t75.5 -13.5t74 -4.5q114 0 179 72t65 212v848h-492v144h668v-986q0 -105 -30 -186.5t-86 -137.5t-137.5 -85t-183.5 -29q-74 0 -144.5 13.5t-127.5 37.5v166zM598 1288q0 28 10.5 53t29 44t43.5 29.5t54 10.5t54 -10.5t43.5 -29.5 t29 -44t10.5 -53q0 -29 -10.5 -53.5t-29 -43.5t-43.5 -29.5t-54 -10.5t-54 10.5t-43.5 29.5t-29 43.5t-10.5 53.5z" />
<glyph unicode="k" d="M182 0v1413h174v-868l451 459h230l-471 -463l497 -541h-239l-468 538v-538h-174z" />
<glyph unicode="l" d="M172 0v145h330v1125h-297v143h473v-1268h299v-145h-805z" />
<glyph unicode="m" d="M90 0v1004h133l8 -191q26 57 50.5 97t50.5 64.5t55.5 36t65.5 11.5q81 0 123 -53t42 -164q24 52 47 92.5t49.5 68t58.5 42t74 14.5q189 0 189 -291v-731h-160v721q0 47 -3.5 77t-11 47.5t-19 24.5t-28.5 7q-20 0 -37 -12t-36.5 -39t-43 -71.5t-55.5 -109.5v-645h-159v702 q0 55 -3.5 89t-11 53t-19.5 26t-29 7q-18 0 -34 -10t-35.5 -36t-43.5 -71t-57 -115v-645h-160z" />
<glyph unicode="n" d="M160 0v1004h155l7 -162q44 52 85 86.5t80.5 55.5t80.5 29.5t85 8.5q155 0 234.5 -91.5t79.5 -275.5v-655h-174v641q0 118 -44 174.5t-131 56.5q-32 0 -62.5 -9.5t-63.5 -33t-71.5 -63.5t-86.5 -100v-666h-174z" />
<glyph unicode="o" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5z" />
<glyph unicode="p" d="M160 -410v1414h155l11 -168q75 103 160 144.5t184 41.5q86 0 151 -36t109 -101.5t66 -158t22 -206.5q0 -134 -37.5 -234t-103.5 -166t-156 -99t-195 -33q-48 0 -95.5 5t-96.5 17v-420h-174zM334 172q48 -20 101 -31.5t104 -11.5q141 0 221 95.5t80 287.5q0 79 -11.5 145 t-36.5 113t-64 73.5t-93 26.5q-33 0 -67 -10.5t-70.5 -35t-77 -65t-86.5 -100.5v-487z" />
<glyph unicode="q" d="M109 481q0 108 28.5 205t88 170.5t152.5 116.5t222 43q51 0 101 -8t106 -25l154 39v-1432h-175v379l9 215q-142 -202 -338 -202q-88 0 -153 36t-108.5 102t-65 158t-21.5 203zM287 492q0 -84 12.5 -151t38 -113.5t64 -71.5t90.5 -25q66 0 139.5 59t154.5 175v466 q-40 19 -90.5 31t-107.5 12q-147 0 -224 -97t-77 -285z" />
<glyph unicode="r" d="M201 0v1004h159l5 -185q89 107 175.5 155t174.5 48q157 0 237 -101q75 -94 74 -273v-27h-176v17q0 118 -38 174q-42 60 -122 60q-35 0 -70.5 -12.5t-73 -40t-79.5 -70.5t-90 -104v-645h-176z" />
<glyph unicode="s" d="M182 20v160q88 -25 175 -38t173 -13q125 0 185 34t60 97q0 27 -9.5 48.5t-34.5 41t-77.5 40.5t-143.5 48q-68 20 -125.5 45.5t-99.5 60.5t-66 82t-24 111q0 42 19.5 92t66.5 93t127 71.5t200 28.5q59 0 131 -6.5t150 -22.5v-155q-82 20 -155.5 29.5t-127.5 9.5 q-65 0 -109.5 -10t-72 -27.5t-39.5 -41t-12 -50.5t10.5 -49t39 -42.5t79.5 -41t133 -44.5q89 -26 150 -54.5t99 -63.5t54.5 -79t16.5 -100q0 -53 -18 -95t-49 -74.5t-72 -55.5t-87.5 -38t-95.5 -22t-96 -7q-102 0 -187.5 9t-167.5 29z" />
<glyph unicode="t" d="M63 858v146h281v276l174 45v-321h451v-146h-451v-510q0 -108 57.5 -161.5t169.5 -53.5q48 0 105 7.5t119 23.5v-150q-59 -15 -122 -21.5t-128 -6.5q-189 0 -282 85.5t-93 262.5v524h-281z" />
<glyph unicode="u" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275z" />
<glyph unicode="v" d="M66 1004h198l246 -664l53 -162l55 166l244 660h191l-394 -1004h-200z" />
<glyph unicode="w" d="M37 1004h170l84 -682l18 -152l43 133l146 451h125l157 -445l45 -133l15 141l78 687h172l-146 -1004h-211l-145 420l-29 102l-33 -108l-139 -414h-205z" />
<glyph unicode="x" d="M70 0l389 504l-371 500h223l264 -386l259 386h215l-377 -504l393 -500h-231l-271 383l-268 -383h-225z" />
<glyph unicode="y" d="M59 -254q22 -3 48 -5.5t55 -2.5q48 0 89.5 14t78.5 45.5t71 81.5t66 121l-401 1004h198l254 -664l51 -156l58 160l235 660h191l-342 -898q-53 -137 -109.5 -236t-123.5 -162.5t-147 -93.5t-179 -30q-26 0 -47 1t-46 3v158z" />
<glyph unicode="z" d="M164 0v125l567 733h-553v146h762v-136l-557 -721h590v-147h-809z" />
<glyph unicode="{" d="M162 506v139h43q73 0 119 12t72 36.5t36 62.5t10 90v237q0 84 20 151.5t65.5 115t118 73t177.5 25.5h74v-140h-59q-232 0 -232 -225v-233q0 -244 -211 -275q213 -21 213 -274v-342q0 -229 230 -229h59v-140h-74q-193 0 -287 90.5t-94 274.5v344q0 49 -11 87.5t-38.5 65 t-73 40.5t-114.5 14h-43z" />
<glyph unicode="|" d="M481 -410v2048h164v-2048h-164z" />
<glyph unicode="}" d="M229 -270h60q231 0 231 225v346q0 244 211 274q-213 23 -213 275v229q0 229 -229 229h-60v140h74q193 0 287 -90.5t94 -274.5v-231q0 -49 11 -87.5t38.5 -65t73.5 -40.5t115 -14h43v-139h-43q-73 0 -119.5 -12t-72.5 -36.5t-36 -62.5t-10 -90v-350q0 -84 -20 -151.5 t-65 -115t-118 -73t-178 -25.5h-74v140z" />
<glyph unicode="~" d="M66 401q-2 76 15.5 140.5t53 112t89 74t124.5 26.5q55 0 99 -18.5t81.5 -46.5t69 -61t62 -61t60.5 -46.5t64 -18.5q63 0 90 46t27 148h160q1 -76 -16 -140.5t-53 -111.5t-89.5 -73.5t-124.5 -26.5q-55 0 -99 18.5t-81.5 46.5t-69 61t-62 61t-60.5 46.5t-64 18.5 q-59 0 -87.5 -47t-28.5 -148h-160z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa1;" d="M434 891q0 27 10.5 51t28.5 41.5t41.5 28t50.5 10.5q28 0 52 -10.5t42 -28t28.5 -41.5t10.5 -51q0 -28 -10.5 -52t-28.5 -42t-42 -28.5t-52 -10.5q-27 0 -50.5 10.5t-41.5 28.5t-28.5 42t-10.5 52zM461 -410l26 1031h154l31 -1031h-211z" />
<glyph unicode="&#xa2;" d="M125 657q0 112 35 203.5t99 157.5t153 103.5t196 41.5l43 332h148l-45 -340q40 -5 78 -14.5t75 -22.5v-164q-42 20 -85 34t-87 22l-94 -693q71 0 137 14.5t129 45.5v-158q-134 -49 -284 -49l-58 -420h-145l57 432q-171 35 -261.5 154t-90.5 321zM307 666 q0 -131 50 -212.5t141 -115.5l90 676q-59 -8 -110.5 -34.5t-89.5 -71t-59.5 -105.5t-21.5 -137z" />
<glyph unicode="&#xa3;" d="M92 0v148h160v431h-160v143h160v180q0 101 29.5 179.5t84 132.5t132 82.5t174.5 28.5q106 0 190 -37.5t144 -92.5l-97 -111q-26 22 -52 39.5t-54.5 29.5t-61.5 18t-73 6q-54 0 -98 -17t-75 -50t-48 -81.5t-17 -112.5v-194h436v-143h-436v-431h567v-148h-905z" />
<glyph unicode="&#xa4;" d="M86 152l174 229q-35 51 -54.5 119.5t-19.5 154.5q0 78 21 147.5t61 125.5l-182 243l154 91l147 -230q38 22 84 33.5t100 11.5q102 0 179 -37l141 222l149 -91l-174 -229q35 -51 54.5 -119.5t19.5 -154.5q0 -78 -21 -147.5t-61 -125.5l182 -243l-153 -91l-148 230 q-38 -22 -84 -33.5t-100 -11.5q-103 0 -178 37l-141 -222zM366 662q0 -131 53 -197t144 -66q52 0 89.5 24t61.5 61.5t35 84.5t11 93q0 131 -53 196.5t-144 65.5q-52 0 -89 -23.5t-61.5 -61t-35.5 -84.5t-11 -93z" />
<glyph unicode="&#xa5;" d="M55 1307h205l209 -367l100 -188l107 192l205 363h196l-424 -705v-29h308v-135h-308v-162h308v-135h-308v-141h-180v141h-307v135h307v162h-309v135h309v29z" />
<glyph unicode="&#xa6;" d="M481 -410v836h164v-836h-164zM481 827v811h164v-811h-164z" />
<glyph unicode="&#xa7;" d="M141 674q0 39 11 79t33 77.5t55 71t77 59.5q-29 24 -52 64.5t-23 94.5q0 48 19.5 101.5t66.5 98.5t127 75t200 30q115 0 226 -24v-150q-63 17 -118.5 24t-111.5 7q-65 0 -108.5 -11t-70.5 -30.5t-38.5 -46.5t-11.5 -59q0 -34 24.5 -63.5t64.5 -58.5t91 -58t104.5 -61.5 t104.5 -69.5t91 -82t64.5 -98.5t24.5 -119.5q0 -40 -11.5 -80t-34 -77.5t-55.5 -70.5t-75 -58q32 -26 55 -67t23 -89q0 -83 -39 -142.5t-100 -98t-135.5 -56.5t-145.5 -18q-51 0 -91 2t-75 6t-67 10.5t-66 15.5v160q37 -12 71.5 -21t69.5 -15t72.5 -8.5t79.5 -2.5 q125 0 185.5 41.5t60.5 114.5q0 33 -24.5 62t-65 57t-91.5 57t-105 61.5t-105 69.5t-91.5 81.5t-65 97.5t-24.5 118zM311 690q0 -61 36 -109.5t92.5 -91t124.5 -81.5t132 -80q31 15 54 37.5t39 47.5t24 50.5t8 46.5q0 61 -37 109.5t-94 90t-125.5 80t-130.5 80.5 q-30 -15 -53 -37t-38.5 -47t-23.5 -50t-8 -46z" />
<glyph unicode="&#xa8;" d="M0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5 t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
<glyph unicode="&#xa9;" d="M12 653q0 148 39.5 271t112.5 211.5t174.5 138t226.5 49.5q129 0 231 -51.5t172.5 -142t108 -213t37.5 -263.5q0 -148 -39.5 -271t-112.5 -211.5t-175 -137.5t-226 -49q-129 0 -231 51.5t-172.5 141.5t-108 212.5t-37.5 263.5zM160 653q0 -114 28.5 -212.5t81 -171 t127 -113.5t166.5 -41q91 0 165.5 38.5t127.5 109t81.5 169.5t28.5 221q0 114 -28 212.5t-80.5 171t-127.5 114t-167 41.5q-90 0 -164.5 -38.5t-127.5 -109t-82 -170t-29 -221.5zM299 647q0 78 21.5 140.5t61 107t95.5 68.5t125 24q93 0 168 -31v-134q-35 19 -72 29t-75 10 q-82 0 -127 -54.5t-45 -156.5q0 -106 44.5 -155.5t129.5 -49.5q76 0 145 37v-130q-83 -33 -174 -33q-297 0 -297 328z" />
<glyph unicode="&#xaa;" d="M225 358v136h676v-136h-676zM244 821q0 97 83 156t251 59h104v49q0 51 -34.5 82t-117.5 31q-49 0 -110 -14t-123 -39v133q51 20 117 31.5t135 11.5q78 0 133 -16t90 -46t51.5 -72.5t16.5 -94.5v-461h-133l-11 92q-46 -48 -102.5 -77.5t-134.5 -29.5q-99 0 -157 51.5 t-58 153.5zM410 825q0 -42 24 -64t72 -22q40 0 84 22.5t92 65.5v101h-119q-41 0 -70 -8t-47.5 -22.5t-27 -33t-8.5 -39.5z" />
<glyph unicode="&#xab;" d="M143 543l258 403l138 -69l-218 -334l218 -336l-138 -70zM563 543l275 399l133 -72l-234 -327l234 -328l-133 -72z" />
<glyph unicode="&#xac;" d="M117 469v152h854v-447h-170v295h-684z" />
<glyph unicode="&#xad;" d="M264 463v164h598v-164h-598z" />
<glyph unicode="&#x2010;" d="M264 463v164h598v-164h-598z" />
<glyph unicode="&#xae;" d="M106 969q0 94 36 177.5t98 145t145 97.5t178 36q94 0 177.5 -36t145.5 -97.5t98 -145t36 -177.5q0 -95 -36 -178t-98 -145t-145.5 -98t-177.5 -36q-95 0 -178 36t-145 98t-98 145t-36 178zM221 969q0 -74 26.5 -138.5t73 -112.5t109 -76t133.5 -28q72 0 134 28t108.5 76 t73 112.5t26.5 138.5q0 73 -26.5 137.5t-73 112.5t-108.5 76t-134 28q-71 0 -133.5 -28t-109 -76t-73 -112.5t-26.5 -137.5zM397 709v520h156q88 0 140 -32t52 -112q0 -57 -32.5 -89t-81.5 -40q18 -5 34 -22t33 -51l82 -174h-116l-74 168q-11 23 -28.5 35t-43.5 12h-20v-215 h-101zM498 1001h41q46 0 74 18.5t28 55.5q0 38 -24.5 55t-73.5 17h-45v-146z" />
<glyph unicode="&#xaf;" d="M0 1004zM301 1225v133h524v-133h-524z" />
<glyph unicode="&#x2c9;" d="M0 1004zM301 1225v133h524v-133h-524z" />
<glyph unicode="&#xb0;" d="M213 1083q0 72 26 134.5t73 108.5t112.5 72.5t144.5 26.5q83 0 147.5 -24t108 -67.5t66 -104t22.5 -133.5q0 -72 -26 -134.5t-73 -108.5t-112.5 -72.5t-144.5 -26.5q-83 0 -147 24t-108 67.5t-66.5 104t-22.5 133.5zM375 1090q0 -43 10.5 -80t33.5 -64t58.5 -42t85.5 -15 q90 0 139 55t49 146q0 43 -11 79.5t-33.5 63.5t-58 42t-85.5 15q-45 0 -80 -14.5t-59 -40.5t-36.5 -63t-12.5 -82z" />
<glyph unicode="&#xb1;" d="M104 684v147h375v388h168v-388h375v-147h-375v-389h-168v389h-375zM133 0v145h860v-145h-860z" />
<glyph unicode="&#xb2;" d="M246 774l217 168q58 45 94.5 77t57.5 57.5t28.5 48t7.5 49.5q0 46 -33.5 76t-99.5 30q-51 0 -97 -18.5t-83 -50.5l-86 106q54 54 128.5 83.5t158.5 29.5q63 0 117.5 -15.5t94 -46.5t62.5 -76.5t23 -105.5q0 -47 -14 -88t-42.5 -79.5t-70.5 -75.5t-97 -76l-114 -82h385 v-154h-637v143z" />
<glyph unicode="&#xb3;" d="M274 771q34 -8 89.5 -12t115.5 -4q91 0 145 28.5t54 80.5q0 24 -10 43.5t-33.5 33t-62.5 21t-97 7.5h-82v129h76q49 0 82 8.5t53 23t28.5 34t8.5 40.5q0 19 -7 34.5t-23 27t-43.5 18t-67.5 6.5q-54 0 -109 -9t-100 -23v141q24 7 53.5 12.5t61 9.5t64 6.5t62.5 2.5 q148 0 218.5 -53.5t70.5 -141.5q0 -71 -33 -115.5t-92 -70.5q38 -10 68.5 -25t52.5 -36.5t33.5 -50.5t11.5 -68q0 -56 -25 -103t-73.5 -80.5t-121.5 -52t-169 -18.5q-29 0 -58 1t-55 3t-48 5t-38 7v140z" />
<glyph unicode="&#xb4;" d="M0 1004zM459 1171l241 242h252l-319 -242h-174z" />
<glyph unicode="&#xb5;" d="M160 -410v1414h174v-639q0 -232 174 -232q30 0 62 10t63.5 32.5t67 62t79.5 100.5v666h174v-689q0 -51 5 -85t17.5 -54.5t32.5 -29.5t50 -9h18v-139q-14 -3 -31.5 -5.5t-37.5 -2.5q-50 0 -85.5 12.5t-59.5 36t-38.5 57.5t-23.5 76q-43 -57 -83 -93.5t-79.5 -57.5t-75 -29 t-68.5 -8q-52 0 -96.5 18.5t-78.5 57.5l14 -173v-297h-174z" />
<glyph unicode="&#xb6;" d="M109 995q0 87 32.5 163t99 133t168.5 89.5t242 32.5h346v-1208q0 -105 -29.5 -187t-85 -137.5t-135 -84.5t-178.5 -29t-185 32t-159 90l90 131q53 -46 121.5 -75t141.5 -29q114 0 179.5 71t65.5 212v1071h-168v-699q-155 0 -259.5 33.5t-168.5 91t-91 135t-27 164.5z" />
<glyph unicode="&#xb7;" d="M397 565q0 34 13 65t35.5 53.5t52.5 36t65 13.5q34 0 64.5 -13.5t53 -36t35.5 -53.5t13 -65t-13 -64t-35.5 -52.5t-53 -36t-64.5 -13.5q-35 0 -65 13.5t-52.5 36t-35.5 52.5t-13 64z" />
<glyph unicode="&#x2219;" d="M397 565q0 34 13 65t35.5 53.5t52.5 36t65 13.5q34 0 64.5 -13.5t53 -36t35.5 -53.5t13 -65t-13 -64t-35.5 -52.5t-53 -36t-64.5 -13.5q-35 0 -65 13.5t-52.5 36t-35.5 52.5t-13 64z" />
<glyph unicode="&#xb8;" d="M436 -295l66 295h172l-86 -295h-152z" />
<glyph unicode="&#xb9;" d="M227 1266l312 156h139v-646h201v-145h-613v145h238v467l-219 -108z" />
<glyph unicode="&#xba;" d="M221 965q0 76 24 141t69 113t110.5 75t148.5 27q78 0 139.5 -22t104 -65.5t65.5 -108.5t23 -150q0 -75 -23.5 -140.5t-68.5 -114t-109.5 -76.5t-146.5 -28q-78 0 -140.5 22t-106 65.5t-66.5 109t-23 152.5zM225 358v136h676v-136h-676zM385 969q0 -109 48.5 -163 t129.5 -54q45 0 78 16.5t55.5 46t33.5 69.5t11 87q0 108 -45.5 161t-132.5 53q-45 0 -78 -17t-55.5 -46.5t-33.5 -69t-11 -83.5z" />
<glyph unicode="&#xbb;" d="M156 215l233 328l-233 327l133 72l274 -399l-274 -400zM588 207l217 336l-217 334l137 69l258 -403l-258 -406z" />
<glyph unicode="&#xbc;" d="M20 0l920 1413h166l-922 -1413h-164zM25 1296l239 129h139v-581h-157v426l-166 -90zM535 109v122l219 338h233v-338h90v-122h-90v-109h-153v109h-299zM688 231h146v226z" />
<glyph unicode="&#xbd;" d="M20 0l920 1413h166l-922 -1413h-164zM25 1296l239 129h139v-581h-157v426l-166 -90zM633 502q22 19 45 34.5t48.5 26t55 16t64.5 5.5q44 0 83 -12.5t68.5 -36.5t46.5 -59.5t17 -82.5q0 -30 -9.5 -56.5t-30 -53t-53 -54.5t-79.5 -61l-62 -43h252v-125h-440v125l186 147 q47 35 63.5 60.5t16.5 54.5q0 15 -3.5 28t-12.5 23.5t-24.5 16.5t-39.5 6q-32 0 -59.5 -14t-65.5 -46z" />
<glyph unicode="&#xbe;" d="M20 0l920 1413h166l-922 -1413h-164zM86 842v119q23 -5 53.5 -8t59.5 -3q63 0 89.5 18.5t26.5 49.5q0 34 -24 47.5t-78 13.5h-90v113h84q47 0 64.5 17.5t17.5 43.5q0 23 -18.5 39.5t-63.5 16.5q-31 0 -58 -5.5t-53 -11.5v113q34 12 71.5 17t82.5 5q100 0 152.5 -38 t52.5 -103q0 -52 -19 -84t-61 -49q56 -11 85 -44t29 -87q0 -42 -18 -77t-53.5 -61t-88 -40.5t-122.5 -14.5q-31 0 -63 3.5t-58 9.5zM535 109v122l219 338h233v-338h90v-122h-90v-109h-153v109h-299zM688 231h146v226z" />
<glyph unicode="&#xbf;" d="M203 35q0 161 90.5 245t259.5 95l8 246h150l12 -383h-117q-61 0 -102 -13t-66 -37t-36 -58.5t-11 -78.5q0 -73 30.5 -129.5t84.5 -95.5t128.5 -59.5t162.5 -20.5h24v-156h-26q-101 0 -184.5 19t-149.5 51.5t-114.5 76.5t-80.5 93.5t-47.5 102t-15.5 102.5zM506 891 q0 27 10 51t27.5 41.5t41.5 28t52 10.5t52 -10.5t41.5 -28t27.5 -41.5t10 -51q0 -28 -10 -52t-27.5 -42t-41.5 -28.5t-52 -10.5t-52 10.5t-41.5 28.5t-27.5 42t-10 52z" />
<glyph unicode="&#xc0;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM205 1659h252l211 -213h-179z" />
<glyph unicode="&#xc1;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
<glyph unicode="&#xc2;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
<glyph unicode="&#xc3;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17t-70.5 37 t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph unicode="&#xc4;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5z M676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
<glyph unicode="&#xc5;" d="M10 0l434 1307h244l428 -1307h-194l-91 285h-544l-92 -285h-185zM338 444h442l-221 699zM0 1307zM362 1550q0 42 15.5 77t42.5 60.5t63.5 39t79.5 13.5t80 -13.5t64 -39t42 -60.5t15 -77q0 -41 -15 -76.5t-42 -61t-64 -40t-80 -14.5t-79.5 14.5t-63.5 40t-42.5 61 t-15.5 76.5zM473 1550q0 -40 25 -65t65 -25q42 0 66 25t24 65q0 41 -24 64.5t-66 23.5q-40 0 -65 -23.5t-25 -64.5z" />
<glyph unicode="&#xc6;" d="M-43 0l532 1307h582v-142h-321v-417h307v-142h-307v-463h335v-143h-501v281h-342l-109 -281h-176zM297 424h287v743z" />
<glyph unicode="&#xc7;" d="M92 639q0 157 41 284t117 215.5t184 136.5t242 48q91 0 169 -15.5t150 -47.5v-175q-71 39 -147 59.5t-166 20.5q-92 0 -166.5 -34.5t-126.5 -100t-80 -160t-28 -215.5q0 -252 103 -382t302 -130q84 0 161 19.5t148 54.5v-168q-159 -65 -319 -65l-82 -279h-152l66 295 q-202 41 -309 204.5t-107 434.5z" />
<glyph unicode="&#xc8;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM205 1659h252l211 -213h-179z" />
<glyph unicode="&#xc9;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
<glyph unicode="&#xca;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
<glyph unicode="&#xcb;" d="M201 0v1307h743v-150h-565v-405h543v-150h-543v-450h565v-152h-743zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42 t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
<glyph unicode="&#xcc;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM205 1659h252l211 -213h-179z" />
<glyph unicode="&#xcd;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
<glyph unicode="&#xce;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
<glyph unicode="&#xcf;" d="M172 0v152h301v1005h-301v150h782v-150h-301v-1005h301v-152h-782zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42 t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
<glyph unicode="&#xd0;" d="M0 602v150h139v555h318q305 0 450.5 -157.5t145.5 -481.5q0 -94 -13.5 -180t-44.5 -160t-81 -134.5t-122.5 -103.5t-170 -66.5t-222.5 -23.5h-260v602h-139zM317 154h113q223 0 329.5 125.5t106.5 375.5q0 139 -24.5 235t-75.5 155t-129.5 85.5t-185.5 26.5h-134v-405 h226v-150h-226v-448z" />
<glyph unicode="&#xd1;" d="M119 0v1307h229l363 -772l131 -299v700v371h166v-1307h-232l-381 815l-110 262v-659v-418h-166zM0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17 t-70.5 37t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph unicode="&#xd2;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM205 1659h252l211 -213h-179z" />
<glyph unicode="&#xd3;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
<glyph unicode="&#xd4;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
<glyph unicode="&#xd5;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17 q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17t-70.5 37t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph unicode="&#xd6;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q126 0 219.5 -46t155.5 -131.5t92.5 -208.5t30.5 -277q0 -176 -41.5 -304t-112 -211.5t-165 -124t-199.5 -40.5q-126 0 -219.5 45.5t-155 131.5t-91.5 209.5t-30 278.5zM242 657q0 -116 18 -211.5t56.5 -164 t99.5 -106.5t147 -38q84 0 145 40.5t100.5 110t58.5 162.5t19 199q0 115 -17.5 210.5t-56.5 164.5t-100.5 107t-148.5 38q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42 t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
<glyph unicode="&#xd7;" d="M147 844l117 117l303 -306l301 301l107 -106l-301 -301l305 -303l-117 -117l-303 305l-301 -301l-106 107l301 301z" />
<glyph unicode="&#xd8;" d="M57 647q0 174 41 302t111.5 211.5t164.5 124t199 40.5q62 0 115 -12l64 209h145l-78 -258q127 -75 188.5 -228.5t61.5 -373.5q0 -176 -41 -304t-111.5 -211.5t-164.5 -124t-199 -40.5q-31 0 -59 2.5t-56 7.5l-61 -207h-146l76 256q-126 72 -188 227.5t-62 378.5zM242 657 q0 -146 27.5 -259t90.5 -179l283 940q-19 5 -38.5 7.5t-41.5 2.5q-84 0 -144.5 -40.5t-99.5 -110t-58 -163t-19 -198.5zM485 145q17 -5 37 -6.5t41 -1.5q84 0 144.5 40.5t100 110t58.5 162.5t19 199q0 146 -28 257t-91 179z" />
<glyph unicode="&#xd9;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM205 1659h252l211 -213h-179z" />
<glyph unicode="&#xda;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM459 1446l211 213h252l-285 -213h-178z " />
<glyph unicode="&#xdb;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM248 1446l231 213h168l232 -213h-183 l-135 102l-135 -102h-178z" />
<glyph unicode="&#xdc;" d="M109 428v879h178v-865q0 -77 14.5 -135t47.5 -97t85.5 -59t128.5 -20q142 0 209.5 82t67.5 231v863h178v-852q0 -108 -30.5 -195.5t-89.5 -149t-144.5 -95t-196.5 -33.5q-122 0 -207 32t-138.5 90.5t-78 140.5t-24.5 183zM0 1307zM238 1552q0 22 8.5 42t22.5 34 t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5 q-45 0 -75.5 30.5t-30.5 75.5z" />
<glyph unicode="&#xdd;" d="M0 1307h215l260 -478l96 -192l88 174l263 496h204l-473 -840v-467h-180v471zM0 1307zM459 1446l211 213h252l-285 -213h-178z" />
<glyph unicode="&#xde;" d="M158 0v1307h178v-195h190q97 0 186 -23t156.5 -72.5t107.5 -127.5t40 -187q0 -80 -30 -160t-93 -144t-161 -104t-234 -40h-162v-254h-178zM336 406h166q158 0 243.5 74t85.5 214q0 63 -21 113t-61.5 85.5t-98.5 54t-132 18.5h-182v-559z" />
<glyph unicode="&#xdf;" d="M147 0v1010q0 106 32 184t89 129.5t135 76.5t170 25q85 0 151.5 -20t112.5 -57t69.5 -89.5t23.5 -117.5q0 -60 -19.5 -102t-48.5 -73t-63 -55t-63 -47.5t-48.5 -50.5t-19.5 -65t26 -69t65.5 -62t85.5 -63t85.5 -72t65.5 -89.5t26 -113.5q0 -53 -19.5 -105t-64 -93 t-115.5 -67t-174 -26q-51 0 -93 4.5t-67 7.5v154q11 -4 29 -8t39 -7t43 -4.5t41 -1.5q53 0 91.5 10t63 27t36.5 39.5t12 48.5q0 47 -26 83t-65 68t-85 64t-85 69.5t-65 85t-26 111.5q0 56 19.5 96t48.5 70.5t63 54t63 48t48.5 53t19.5 67.5q0 82 -50.5 119t-146.5 37 q-54 0 -97 -15t-74 -47.5t-47.5 -83.5t-16.5 -122v-1016h-175z" />
<glyph unicode="&#xe0;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM174 1413h252l242 -242h-174z" />
<glyph unicode="&#xe1;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
<glyph unicode="&#xe2;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
<glyph unicode="&#xe3;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17 q40 0 70.5 27.5t58.5 70.5l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph unicode="&#xe4;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5 t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
<glyph unicode="&#xe5;" d="M133 268q0 151 112.5 236.5t332.5 85.5h208v88q0 89 -57 142.5t-174 53.5q-85 0 -167.5 -19t-170.5 -54v157q33 12 73.5 23.5t85.5 20.5t94 14.5t99 5.5q91 0 164 -20t123.5 -61t77.5 -103t27 -146v-692h-156l-4 135q-82 -81 -166.5 -117t-177.5 -36q-86 0 -147 22 t-100.5 60.5t-58 90.5t-18.5 113zM317 274q0 -29 9 -55.5t29 -47t52 -32.5t78 -12q60 0 137.5 36.5t163.5 115.5v178h-221q-65 0 -112 -13t-77 -37t-44.5 -57.5t-14.5 -75.5zM0 1004zM348 1294q0 43 17 81t46 66t68 44t84 16t84 -16t68 -44t46 -66t17 -81t-17 -80.5 t-46 -65.5t-68 -44t-84 -16t-84 16t-68 44t-46 65.5t-17 80.5zM463 1294q0 -42 29 -71t71 -29q21 0 39 8t31.5 21.5t21.5 31.5t8 39t-8 39.5t-21.5 32t-31.5 21.5t-39 8t-39 -8t-31.5 -21.5t-21.5 -32t-8 -39.5z" />
<glyph unicode="&#xe6;" d="M31 268q0 75 19.5 134.5t60 100t103.5 62t151 21.5h120v84q0 101 -34.5 156t-118.5 55q-57 0 -120.5 -19.5t-125.5 -54.5v151q24 12 54.5 23.5t63.5 20.5t68 14.5t68 5.5q91 0 152.5 -29.5t87.5 -91.5q35 56 90.5 88.5t128.5 32.5q78 0 132.5 -32t89 -90t50.5 -139.5 t16 -180.5q0 -54 -1 -81t-3 -42h-444q0 -161 46.5 -246.5t154.5 -85.5q57 0 113 12t98 29v-139q-23 -10 -53 -18.5t-63 -14.5t-67 -9t-65 -3q-194 0 -268 174q-51 -82 -117 -128t-142 -46q-120 0 -182.5 73t-62.5 213zM195 274q0 -75 26 -112t74 -37q42 0 88.5 34t101.5 122 v176h-125q-87 0 -126 -50t-39 -133zM639 586h285q1 62 -5.5 116.5t-22 94.5t-41 63t-62.5 23q-39 0 -67.5 -23t-48 -62.5t-29 -94t-9.5 -117.5z" />
<glyph unicode="&#xe7;" d="M158 492q0 119 37 216t104 166t160 106.5t205 37.5q78 0 146 -11t130 -36v-166q-65 34 -132.5 49.5t-139.5 15.5q-67 0 -126.5 -25.5t-104.5 -73.5t-71 -117t-26 -156q0 -182 88.5 -272.5t245.5 -90.5q71 0 137.5 16t128.5 48v-162q-68 -26 -135 -38t-128 -13l-82 -281 h-152l66 295q-174 38 -262.5 163.5t-88.5 328.5z" />
<glyph unicode="&#xe8;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM174 1413h252l242 -242h-174z" />
<glyph unicode="&#xe9;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
<glyph unicode="&#xea;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
<glyph unicode="&#xeb;" d="M117 500q0 106 30.5 200.5t89 166t143.5 113.5t193 42q105 0 186 -33t136.5 -93.5t84 -147t28.5 -193.5q0 -37 -1 -62t-3 -47h-705q0 -154 86 -236.5t248 -82.5q44 0 88 3.5t85 9.5t78.5 13.5t69.5 16.5v-143q-71 -20 -160.5 -32.5t-185.5 -12.5q-129 0 -222 35 t-152.5 101.5t-88 163t-28.5 218.5zM299 580h528v21q0 55 -13 101q-16 56 -49.5 96t-83.5 62.5t-116 22.5q-57 0 -104 -22t-81 -62t-55 -96t-26 -123zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5 t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
<glyph unicode="&#xec;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM174 1413h252l242 -242h-174z" />
<glyph unicode="&#xed;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
<glyph unicode="&#xee;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
<glyph unicode="&#xef;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5 t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
<glyph unicode="&#xf0;" d="M100 477q0 109 31 206.5t91 171t147.5 116.5t201.5 43q7 0 20 -1t25 -3q-20 29 -44 63.5t-50 69.5l-280 -60v146l186 39l-115 145h217l82 -104l297 61v-145l-204 -41q73 -101 129 -192.5t94 -175.5t58 -162t20 -152q0 -53 -8.5 -112.5t-28.5 -117t-54.5 -110t-86 -93 t-123 -64t-166.5 -23.5q-106 0 -188 35.5t-137.5 100.5t-84.5 156.5t-29 202.5zM279 487q0 -87 20.5 -154t57 -112.5t87 -68.5t109.5 -23q69 0 120.5 26.5t85.5 74t51 114.5t17 148q0 86 -26.5 173t-83.5 187q-42 9 -74 12.5t-61 3.5q-84 0 -142 -31t-93.5 -83.5 t-51.5 -121.5t-16 -145z" />
<glyph unicode="&#xf1;" d="M160 0v1004h155l7 -162q44 52 85 86.5t80.5 55.5t80.5 29.5t85 8.5q155 0 234.5 -91.5t79.5 -275.5v-655h-174v641q0 118 -44 174.5t-131 56.5q-32 0 -62.5 -9.5t-63.5 -33t-71.5 -63.5t-86.5 -100v-666h-174zM0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17 t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph unicode="&#xf2;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM174 1413h252l242 -242h-174z" />
<glyph unicode="&#xf3;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
<glyph unicode="&#xf4;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
<glyph unicode="&#xf5;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5 l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph unicode="&#xf6;" d="M92 496q0 117 33 213.5t95 166t151 108t202 38.5q108 0 193.5 -33.5t145 -98t91 -160.5t31.5 -220q0 -117 -33 -214.5t-95 -167t-151 -108t-202 -38.5q-108 0 -193.5 33.5t-145 98.5t-91 161t-31.5 221zM270 502q0 -93 20.5 -163t58.5 -116.5t92 -70t122 -23.5 q78 0 133.5 30.5t91 81.5t52 118.5t16.5 142.5q0 93 -20.5 162.5t-58.5 116t-92.5 70t-121.5 23.5q-78 0 -133.5 -30.5t-91 -81.5t-52 -118.5t-16.5 -141.5zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5 t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
<glyph unicode="&#xf7;" d="M84 469v152h958v-152h-958zM428 154q0 27 10.5 51.5t28.5 42.5t42 28.5t52 10.5q27 0 51 -10.5t41.5 -28.5t28 -42.5t10.5 -51.5t-10.5 -51t-28 -41.5t-41.5 -28t-51 -10.5q-28 0 -52 10.5t-42 28t-28.5 41.5t-10.5 51zM428 936q0 27 10.5 51t28.5 41.5t42 28t52 10.5 q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51q0 -28 -10.5 -52t-28 -42t-41.5 -28.5t-51 -10.5q-28 0 -52 10.5t-42 28.5t-28.5 42t-10.5 52z" />
<glyph unicode="&#xf8;" d="M92 496q0 121 32.5 218.5t94.5 165.5t151 105t203 37q44 0 91 -6l67 203h146l-82 -244q113 -54 176 -170.5t63 -294.5q0 -122 -32.5 -220t-94.5 -166.5t-151 -105t-203 -36.5q-45 0 -88 6l-68 -203h-145l82 244q-114 55 -178 171.5t-64 295.5zM266 502q0 -113 30 -193 t89 -125l229 688q-12 2 -27.5 3.5t-29.5 1.5q-78 0 -133 -30t-90 -81.5t-51.5 -119.5t-16.5 -144zM514 131q12 -2 27.5 -3t27.5 -1q78 0 133 30t90 81.5t51.5 119.5t16.5 144q0 112 -30.5 192t-86.5 125z" />
<glyph unicode="&#xf9;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM174 1413h252l242 -242h-174z" />
<glyph unicode="&#xfa;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM459 1171l241 242h252l-319 -242h-174z" />
<glyph unicode="&#xfb;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
<glyph unicode="&#xfc;" d="M160 348v656h174v-642q0 -231 174 -231q32 0 62.5 9.5t64 33t72 63.5t86.5 101v666h174v-1004h-156l-6 162q-45 -52 -85.5 -86.5t-80.5 -55.5t-80.5 -29.5t-85.5 -8.5q-155 0 -234 91t-79 275zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5 t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5z" />
<glyph unicode="&#xfd;" d="M59 -254q22 -3 48 -5.5t55 -2.5q48 0 89.5 14t78.5 45.5t71 81.5t66 121l-401 1004h198l254 -664l51 -156l58 160l235 660h191l-342 -898q-53 -137 -109.5 -236t-123.5 -162.5t-147 -93.5t-179 -30q-26 0 -47 1t-46 3v158zM0 1004zM459 1171l241 242h252l-319 -242h-174z " />
<glyph unicode="&#xfe;" d="M160 -410v1823h174v-389l-8 -186q75 101 160.5 142.5t183.5 41.5q86 0 151 -36t109 -101.5t66 -158t22 -206.5q0 -125 -34.5 -223.5t-98 -167t-154.5 -105t-205 -36.5q-48 0 -95.5 5t-96.5 17v-420h-174zM334 172q51 -20 104 -31.5t101 -11.5q60 0 114.5 19t96 63.5 t66 118t24.5 182.5q0 79 -11.5 145t-36.5 113t-64 73.5t-93 26.5q-33 0 -67 -10.5t-70.5 -35t-77 -65t-86.5 -100.5v-487z" />
<glyph unicode="&#xff;" d="M59 -254q22 -3 48 -5.5t55 -2.5q48 0 89.5 14t78.5 45.5t71 81.5t66 121l-401 1004h198l254 -664l51 -156l58 160l235 660h191l-342 -898q-53 -137 -109.5 -236t-123.5 -162.5t-147 -93.5t-179 -30q-26 0 -47 1t-46 3v158zM0 1004zM236 1292q0 23 9 43.5t24 36t35.5 24.5 t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24t-24 35.5t-9 43.5zM666 1292q0 23 9 43.5t24 36t35.5 24.5t43.5 9t43.5 -9t36 -24.5t24.5 -36t9 -43.5t-9 -43.5t-24.5 -35.5t-36 -24t-43.5 -9t-43.5 9t-35.5 24 t-24 35.5t-9 43.5z" />
<glyph unicode="&#x131;" d="M172 0v145h330v715h-297v144h473v-859h299v-145h-805z" />
<glyph unicode="&#x152;" d="M31 647q0 174 38.5 301t103.5 210t152 123t185 40q24 0 55 -2t61.5 -5t57 -5t41.5 -2h369v-146h-330v-411h309v-146h-309v-457h330v-147h-365q-74 0 -127 -7t-96 -7q-122 0 -211.5 43.5t-148 127.5t-87 207t-28.5 283zM209 653q0 -252 77.5 -386t229.5 -134q20 0 38 2.5 t38 7.5v1022q-14 3 -35.5 6t-46.5 3q-80 0 -137 -40.5t-93.5 -111t-53.5 -165.5t-17 -204z" />
<glyph unicode="&#x153;" d="M39 494q0 122 20 219.5t59.5 166t99.5 105.5t140 37q78 0 131.5 -42t94.5 -132q18 41 39 73.5t48 55t61.5 34t78.5 11.5q66 0 118 -31t87.5 -91t54.5 -147t19 -198q0 -37 -0.5 -60.5t-2.5 -35.5h-423q0 -161 46 -244.5t140 -83.5q57 0 110.5 12t94.5 29v-145 q-45 -20 -102.5 -32.5t-118.5 -12.5q-91 0 -161 43.5t-102 132.5q-35 -85 -92.5 -130.5t-134.5 -45.5q-78 0 -135 29t-95 91.5t-56.5 159.5t-18.5 232zM203 500q0 -101 8.5 -172t26.5 -115.5t46 -65t66 -20.5q139 0 139 373q0 103 -9.5 174.5t-27.5 116.5t-44 65.5t-58 20.5 q-35 0 -62.5 -21.5t-46.5 -67.5t-28.5 -117t-9.5 -171zM664 588h264q1 78 -9 133t-27 89.5t-40.5 50.5t-50.5 16q-69 0 -102 -76t-35 -213z" />
<glyph unicode="&#x178;" d="M0 1307h215l260 -478l96 -192l88 174l263 496h204l-473 -840v-467h-180v471zM0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552 q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
<glyph unicode="&#x2c6;" d="M0 1004zM248 1171l244 242h143l244 -242h-177l-141 121l-141 -121h-172z" />
<glyph unicode="&#x2da;" d="M0 1004zM348 1294q0 43 17 81t46 66t68 44t84 16t84 -16t68 -44t46 -66t17 -81t-17 -80.5t-46 -65.5t-68 -44t-84 -16t-84 16t-68 44t-46 65.5t-17 80.5zM463 1294q0 -42 29 -71t71 -29q21 0 39 8t31.5 21.5t21.5 31.5t8 39t-8 39.5t-21.5 32t-31.5 21.5t-39 8t-39 -8 t-31.5 -21.5t-21.5 -32t-8 -39.5z" />
<glyph unicode="&#x2dc;" d="M0 1004zM201 1268q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -86q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 16.5t-70.5 37t-58.5 37.5t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph unicode="&#x3bc;" d="M160 -410v1414h174v-639q0 -232 174 -232q30 0 62 10t63.5 32.5t67 62t79.5 100.5v666h174v-689q0 -51 5 -85t17.5 -54.5t32.5 -29.5t50 -9h18v-139q-14 -3 -31.5 -5.5t-37.5 -2.5q-50 0 -85.5 12.5t-59.5 36t-38.5 57.5t-23.5 76q-43 -57 -83 -93.5t-79.5 -57.5t-75 -29 t-68.5 -8q-52 0 -96.5 18.5t-78.5 57.5l14 -173v-297h-174z" />
<glyph unicode="&#x2000;" horiz-adv-x="870" />
<glyph unicode="&#x2001;" horiz-adv-x="1740" />
<glyph unicode="&#x2002;" horiz-adv-x="870" />
<glyph unicode="&#x2003;" horiz-adv-x="1740" />
<glyph unicode="&#x2004;" horiz-adv-x="580" />
<glyph unicode="&#x2005;" horiz-adv-x="435" />
<glyph unicode="&#x2006;" horiz-adv-x="290" />
<glyph unicode="&#x2007;" horiz-adv-x="290" />
<glyph unicode="&#x2008;" horiz-adv-x="217" />
<glyph unicode="&#x2009;" horiz-adv-x="348" />
<glyph unicode="&#x200a;" horiz-adv-x="96" />
<glyph unicode="&#x2011;" d="M264 463v164h598v-164h-598z" />
<glyph unicode="&#x2012;" d="M264 463v164h598v-164h-598z" />
<glyph unicode="&#x2013;" d="M133 469v152h860v-152h-860z" />
<glyph unicode="&#x2014;" d="M-4 469v152h1134v-152h-1134z" />
<glyph unicode="&#x2018;" d="M406 1001q0 83 30 160t90.5 135.5t151 93.5t211.5 35v-137q-51 1 -99 -9t-84.5 -31.5t-58.5 -53.5t-22 -74t14.5 -67.5t32.5 -47.5t32.5 -47.5t14.5 -66.5q0 -21 -8 -44t-24.5 -42t-42 -31t-60.5 -12q-36 0 -68 14.5t-56.5 44.5t-39 75t-14.5 105z" />
<glyph unicode="&#x2019;" d="M238 762v137q51 -2 99 8.5t84.5 32t58.5 53.5t22 74t-14.5 68t-32.5 48t-32.5 47t-14.5 66q0 22 8 44.5t24.5 41.5t42 31t60.5 12t67.5 -14.5t57 -44t39 -74.5t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35z" />
<glyph unicode="&#x201a;" d="M238 -205q51 -2 99 9t84.5 32.5t58.5 53.5t22 73q0 42 -14.5 68t-32.5 48t-32.5 47t-14.5 67q0 21 8 44t24.5 42t42 31t60.5 12t67.5 -14.5t57 -44.5t39 -75t14.5 -106q0 -83 -30.5 -159.5t-91 -135.5t-151 -94t-210.5 -35v137z" />
<glyph unicode="&#x201c;" d="M104 1028q0 78 28.5 149.5t84 126.5t138 88t190.5 33v-129q-44 1 -85.5 -8.5t-74 -29.5t-52.5 -50t-20 -69t13 -63t29 -45t29 -44.5t13 -62.5q0 -20 -7.5 -41.5t-23 -39t-39.5 -29t-57 -11.5t-63 14t-53 42t-36.5 70t-13.5 99zM629 1028q0 78 28 149.5t83.5 126.5t138 88 t190.5 33v-129q-44 1 -85.5 -8.5t-74 -29.5t-52 -50t-19.5 -69t13 -63t29 -45t29 -44.5t13 -62.5q0 -20 -7.5 -41.5t-23 -39t-39.5 -29t-57 -11.5t-63 14t-53 42t-36.5 70t-13.5 99z" />
<glyph unicode="&#x201d;" d="M57 803v129q44 -2 85.5 8t74 30t52.5 50.5t20 69.5t-13 62.5t-29 44.5t-29 45t-13 63q0 20 7.5 41t23 38.5t39.5 29t57 11.5t63 -14t53 -41.5t36.5 -70t13.5 -99.5q0 -78 -28.5 -149.5t-84 -126.5t-138 -88t-190.5 -33zM582 803v129q43 -2 85 8t74 30t52 50.5t20 69.5 t-13 62.5t-29 44.5t-29 45t-13 63q0 20 7.5 41t23 38.5t39.5 29t57 11.5t63 -14t53 -41.5t36.5 -70t13.5 -99.5q0 -78 -28.5 -149.5t-84 -126.5t-137.5 -88t-190 -33z" />
<glyph unicode="&#x201e;" d="M57 -197q44 -2 85.5 8t74 30.5t52.5 50.5t20 69t-13 63t-29 45t-29 44.5t-13 62.5q0 20 7.5 41.5t23 39t39.5 29t57 11.5t63 -14t53 -42t36.5 -70t13.5 -99q0 -78 -28.5 -149.5t-84 -127t-138 -88.5t-190.5 -33v129zM582 -197q43 -2 85 8t74 30.5t52 50.5t20 69t-13 63 t-29 45t-29 44.5t-13 62.5q0 20 7.5 41.5t23 39t39.5 29t57 11.5t63 -14t53 -42t36.5 -70t13.5 -99q0 -78 -28.5 -149.5t-84 -127t-137.5 -88.5t-190 -33v129z" />
<glyph unicode="&#x2022;" d="M258 565q0 63 24 118.5t65.5 97t97 65.5t118.5 24t118.5 -24t97 -65.5t65.5 -97t24 -118.5t-24 -118.5t-65.5 -97t-97 -65.5t-118.5 -24t-118.5 24t-97 65.5t-65.5 97t-24 118.5z" />
<glyph unicode="&#x2026;" d="M59 102q0 25 9 47t24.5 38.5t37.5 26t48 9.5t48 -9.5t37.5 -25.5t24.5 -38.5t9 -47.5q0 -24 -9 -46t-24.5 -38.5t-37.5 -26t-48 -9.5t-48 9.5t-37.5 25.5t-24.5 38t-9 47zM444 102q0 25 9 47t24.5 38.5t37.5 26t48 9.5t48 -9.5t37.5 -25.5t24.5 -38.5t9 -47.5 q0 -24 -9 -46t-24.5 -38.5t-37.5 -26t-48 -9.5t-48 9.5t-37.5 25.5t-24.5 38t-9 47zM829 102q0 25 9 47t24.5 38.5t37.5 26t48 9.5t48 -9.5t37.5 -25.5t24.5 -38.5t9 -47.5q0 -24 -9 -46t-24.5 -38.5t-37.5 -26t-48 -9.5t-48 9.5t-37.5 25.5t-24.5 38t-9 47z" />
<glyph unicode="&#x202f;" horiz-adv-x="348" />
<glyph unicode="&#x2039;" d="M288 545l359 446l134 -97l-293 -349l293 -349l-134 -98z" />
<glyph unicode="&#x203a;" d="M345 195l293 349l-293 349l134 98l359 -447l-359 -446z" />
<glyph unicode="&#x205f;" horiz-adv-x="435" />
<glyph unicode="&#x2081;" d="M227 420l312 156h139v-646h201v-145h-613v145h238v467l-219 -108z" />
<glyph unicode="&#x2082;" d="M246 -72l217 168q58 45 94.5 77t57.5 57.5t28.5 48t7.5 49.5q0 46 -33.5 76t-99.5 30q-51 0 -97 -18.5t-83 -50.5l-86 106q54 54 128.5 83.5t158.5 29.5q63 0 117.5 -15.5t94 -46.5t62.5 -76.5t23 -105.5q0 -47 -14 -88t-42.5 -79.5t-70.5 -75.5t-97 -76l-114 -82h385 v-154h-637v143z" />
<glyph unicode="&#x2083;" d="M274 -75q34 -8 89.5 -12t115.5 -4q91 0 145 28.5t54 80.5q0 24 -10 43.5t-33.5 33t-62.5 21t-97 7.5h-82v129h76q49 0 82 8.5t53 23t28.5 34t8.5 40.5q0 19 -7 34.5t-23 27t-43.5 18t-67.5 6.5q-54 0 -109 -9t-100 -23v141q24 7 53.5 12.5t61 9.5t64 6.5t62.5 2.5 q148 0 218.5 -53.5t70.5 -141.5q0 -71 -33 -115.5t-92 -70.5q38 -10 68.5 -25t52.5 -36.5t33.5 -50.5t11.5 -68q0 -56 -25 -103t-73.5 -80.5t-121.5 -52t-169 -18.5q-29 0 -58 1t-55 3t-48 5t-38 7v140z" />
<glyph unicode="&#x20ac;" d="M51 422v136h144q-2 19 -2 38v42q0 25 1 49.5t3 48.5h-146v136h166q23 105 68 189t109 142.5t145.5 90t179.5 31.5q80 0 148.5 -16t133.5 -47v-171q-63 38 -130.5 58.5t-147.5 20.5q-124 0 -204 -76t-118 -222h402v-136h-422q-2 -21 -3 -42.5t-1 -43.5q0 -25 1 -47t1 -45 h424v-136h-404q32 -143 111.5 -214t216.5 -71q74 0 142.5 19.5t131.5 54.5v-164q-69 -32 -141.5 -48.5t-150.5 -16.5q-211 0 -335.5 110t-162.5 330h-160z" />
<glyph unicode="&#x2122;" d="M10 1202v105h406v-105h-133v-424h-136v424h-137zM442 778l76 529h158l80 -285l18 -86l17 76l86 295h159l80 -529h-135l-37 285l-12 86l-19 -76l-82 -295h-129l-79 301l-19 70l-2 -57l-43 -314h-117z" />
<glyph unicode="&#xe000;" horiz-adv-x="1004" d="M0 1005h1005v-1005h-1005v1005z" />
<glyph unicode="&#xfb01;" d="M0 1004zM47 758v145h178v121q0 201 114.5 301t340.5 100q53 0 120 -8.5t130 -23.5v-150q-60 17 -128 27t-128 10q-134 0 -204.5 -61t-70.5 -185v-131h564v-903h-175v758h-389v-758h-174v758h-178z" />
<glyph unicode="&#xfb02;" d="M0 1004zM47 758v145h178v119q0 201 114 301t335 100q65 0 137.5 -6.5t151.5 -23.5v-1393h-175v1274q-30 5 -59 6.5t-61 1.5q-137 0 -203 -63t-66 -187v-129h213v-145h-213v-758h-174v758h-178z" />
<glyph unicode="&#xfb03;" horiz-adv-x="3378" d="M2424 0v145h330v715h-297v144h473v-859h299v-145h-805zM2678 1288q0 29 10.5 53.5t29 43.5t43.5 29.5t54 10.5t54 -10.5t43.5 -29.5t29 -43.5t10.5 -53.5q0 -28 -10.5 -53t-29 -44t-43.5 -29.5t-54 -10.5t-54 10.5t-43.5 29.5t-29 44t-10.5 53zM1126 1004zM1206 713v145 h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323zM0 1004zM80 713v145h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323z" />
<glyph unicode="&#xfb04;" horiz-adv-x="3378" d="M2424 0v145h330v1125h-297v143h473v-1268h299v-145h-805zM1126 1004zM1206 713v145h323v166q0 401 418 401q104 0 230 -24v-150q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323zM0 1004zM80 713v145h323v166q0 401 418 401q104 0 230 -24v-150 q-137 29 -236 29q-235 0 -235 -246v-176h440v-145h-440v-713h-177v713h-323z" />
<glyph d="M0 1307zM205 1659h252l211 -213h-179z" />
<glyph d="M0 1307zM459 1446l211 213h252l-285 -213h-178z" />
<glyph d="M0 1307zM248 1446l231 213h168l232 -213h-183l-135 102l-135 -102h-178z" />
<glyph d="M0 1307zM201 1526q43 72 97.5 108.5t123.5 36.5q58 0 98 -17t71 -37t58.5 -37t61.5 -17q40 0 70.5 27.5t58.5 70.5l86 -82q-44 -72 -98 -108.5t-123 -36.5q-59 0 -98.5 17t-70.5 37t-58.5 37t-61.5 17q-41 0 -71 -27.5t-58 -70.5z" />
<glyph d="M0 1307zM238 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t41.5 -8.5t34 -22.5t23 -34t8.5 -42t-8.5 -41.5t-23 -33.5t-34 -22.5t-41.5 -8.5q-45 0 -75.5 30.5t-30.5 75.5zM676 1552q0 22 8.5 42t22.5 34t33.5 22.5t41.5 8.5t42 -8.5t34 -22.5t22.5 -34t8.5 -42 t-8.5 -41.5t-22.5 -33.5t-34 -22.5t-42 -8.5q-45 0 -75.5 30.5t-30.5 75.5z" />
<glyph d="M0 1307zM362 1550q0 42 15.5 77t42.5 60.5t63.5 39t79.5 13.5t80 -13.5t64 -39t42 -60.5t15 -77q0 -41 -15 -76.5t-42 -61t-64 -40t-80 -14.5t-79.5 14.5t-63.5 40t-42.5 61t-15.5 76.5zM473 1550q0 -40 25 -65t65 -25q42 0 66 25t24 65q0 41 -24 64.5t-66 23.5 q-40 0 -65 -23.5t-25 -64.5z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Binary file not shown.

3
fonts/courier-new.css Normal file
View File

@ -0,0 +1,3 @@
.crayon-font-courier-new * {
font-family: 'Courier New', monospace !important;
}

14
fonts/droid-sans-mono.css Normal file
View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'DroidSansMonoRegular';
src: url('droid-sans-mono/droid-sans-mono-webfont.eot');
src: url('droid-sans-mono/droid-sans-mono-webfont.eot?#iefix') format('embedded-opentype'),
url('droid-sans-mono/droid-sans-mono-webfont.woff') format('woff'),
url('droid-sans-mono/droid-sans-mono-webfont.ttf') format('truetype'),
url('droid-sans-mono/droid-sans-mono-webfont.svg#DroidSansMonoRegular') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-droid-sans-mono * {
font-family: Droid Sans Mono, 'DroidSansMonoRegular', 'Courier New', monospace !important;
}

Binary file not shown.

View File

@ -0,0 +1,149 @@
<?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>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : Digitized data copyright 2006 Google Corporation
Foundry : Ascender Corporation
Foundry URL : httpwwwascendercorpcom
</metadata>
<defs>
<font id="webfont9N3UDjKi" horiz-adv-x="1228" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M487 110.5q0 139.5 127 139.5t127 -139.5t-127 -139.5t-127 139.5zM504 1462h223l-51 -1048h-121z" />
<glyph unicode="&#x22;" d="M285 1462h237l-41 -528h-155zM707 1462h237l-41 -528h-155z" />
<glyph unicode="#" d="M45 428v137h244l65 328h-233v137h258l82 432h147l-82 -432h293l84 432h144l-84 -432h221v-137h-248l-64 -328h240v-137h-266l-82 -428h-148l84 428h-290l-82 -428h-144l78 428h-217zM436 565h291l64 328h-291z" />
<glyph unicode="$" d="M182 172v172q197 -92 365 -92v434q-197 66 -271 145q-78 84 -77 220q0 131 92 217q90 84 256 106v180h137v-176q182 -8 336 -78l-66 -145q-143 63 -270 72v-422q199 -68 279 -148q82 -82 81 -211q0 -281 -360 -335v-230h-137v221q-228 0 -365 70zM375 1049q0 -76 41 -121 q41 -43 131 -74v369q-172 -27 -172 -174zM684 262q184 28 184 184q0 127 -184 189v-373z" />
<glyph unicode="%" d="M0 1133q0 164 80 256q78 90 215 90q131 0 211 -92.5t80 -253.5q0 -166 -78 -256q-80 -92 -217 -93q-131 0 -211 95q-80 96 -80 254zM152 1133q0 -229 141 -230q139 0 139 230q0 225 -139 225q-141 0 -141 -225zM170 0l729 1462h158l-729 -1462h-158zM643 330 q0 164 80 256q78 90 215 90q131 0 211 -92t80 -254q0 -164 -78 -254q-82 -94 -217 -94q-131 0 -211 94q-80 96 -80 254zM795 330q0 -229 141 -230q139 0 139 230q0 225 -139 225q-141 0 -141 -225z" />
<glyph unicode="&#x26;" d="M61 381q0 133 64 229q63 98 235 199q-164 193 -163 356q0 147 96 233.5t274 86.5q168 0 260.5 -86t92.5 -234q0 -203 -318 -389l281 -348q70 119 104 266h184q-53 -236 -178 -403l234 -291h-217l-131 166q-174 -186 -412 -186q-190 0 -297 106q-109 109 -109 295z M252 387q0 -104 67 -176q68 -70 160 -70q162 0 299 146l-323 401q-203 -123 -203 -301zM375 1165q0 -117 133 -268q133 80 184 139q49 57 49 133q0 72 -49 119q-51 47 -131 47q-86 0 -137 -45q-49 -43 -49 -125z" />
<glyph unicode="'" d="M496 1462h237l-41 -528h-155z" />
<glyph unicode="(" d="M295 567q0 532 444 895h193q-449 -375 -449 -893q0 -522 447 -893h-191q-444 352 -444 891z" />
<glyph unicode=")" d="M297 1462h192q444 -362 445 -895q0 -541 -445 -891h-190q446 373 446 893q1 518 -448 893z" />
<glyph unicode="*" d="M133 1081l29 193l391 -111l-43 393h205l-43 -393l397 111l27 -193l-379 -28l246 -326l-179 -96l-176 358l-157 -358l-185 96l242 326z" />
<glyph unicode="+" d="M152 647v150h387v389h149v-389h387v-150h-387v-385h-149v385h-387z" />
<glyph unicode="," d="M440 -289q76 322 111 551h219l16 -24q-59 -229 -194 -527h-152z" />
<glyph unicode="-" d="M285 465v168h659v-168h-659z" />
<glyph unicode="." d="M463 135q0 166 151.5 166t151.5 -166t-151.5 -166t-151.5 166z" />
<glyph unicode="/" d="M211 0l627 1462h178l-627 -1462h-178z" />
<glyph unicode="0" d="M147 733q0 752 465 752q231 0 350 -192.5t119 -559.5q0 -754 -469 -753q-231 0 -348 194q-117 193 -117 559zM332 733q0 -317 67 -459q68 -139 213 -139q147 0 215 141q70 145 70 457q0 309 -70 455q-68 141 -215 141q-145 0 -213 -139q-67 -138 -67 -457z" />
<glyph unicode="1" d="M225 1163l383 299h150v-1462h-176v913q0 147 8 361q-43 -47 -121 -113l-147 -121z" />
<glyph unicode="2" d="M158 0v156l350 381q201 219 258 317q61 104 61 231q0 115 -63 179q-66 66 -172 65q-162 0 -318 -137l-102 119q190 172 422 172q197 0 305 -107q113 -109 113 -284q0 -115 -59.5 -244t-290.5 -375l-281 -299v-8h688v-166h-911z" />
<glyph unicode="3" d="M131 59v170q186 -96 383 -96q354 0 354 289q0 258 -381 258h-133v151h133q160 0 248 76t88 201q0 104 -67 162q-70 59 -183 59q-176 0 -344 -121l-92 125q186 150 436 150q205 0 322 -99q115 -96 115 -264q0 -141 -82 -231q-86 -94 -234 -119v-6q360 -45 361 -348 q0 -203 -137 -320q-138 -117 -400 -116q-243 -1 -387 79z" />
<glyph unicode="4" d="M61 328v159l664 983h188v-976h213v-166h-213v-328h-176v328h-676zM240 494h497v356q0 178 13 432h-9q-41 -111 -90 -180z" />
<glyph unicode="5" d="M172 59v172q145 -96 360 -96q336 0 336 314q0 295 -344 294q-78 0 -231 -26l-90 57l55 688h690v-166h-532l-39 -419q102 20 209 20q209 0 340 -115q129 -114 129 -313q0 -233 -137 -363q-135 -127 -390 -126q-224 -1 -356 79z" />
<glyph unicode="6" d="M154 625q0 858 639 858q104 0 172 -19v-155q-71 25 -166 24q-221 0 -336 -141t-123 -447h12q96 170 307 170q195 0 306 -118q111 -120 110 -326q0 -227 -121 -360q-119 -131 -323 -131q-219 0 -348 170t-129 475zM336 506q0 -150 82 -262q80 -111 211 -111q129 0 198 88 q72 90 72 250q0 147 -68 223q-68 78 -196 78q-125 0 -213 -82q-86 -80 -86 -184z" />
<glyph unicode="7" d="M143 1296v166h940v-145l-555 -1317h-194l563 1296h-754z" />
<glyph unicode="8" d="M156 373q0 258 282 393q-236 150 -235 369q0 160 116 256q115 94 295 94q184 0 297 -94q115 -96 115 -258q0 -229 -262 -359q309 -160 309 -393q0 -180 -127 -291q-126 -111 -332 -110q-217 0 -337.5 104.5t-120.5 288.5zM334 371q0 -240 276 -240q135 0 211 66 q74 66 74 182q0 90 -63.5 159.5t-213.5 143.5l-30 14q-254 -118 -254 -325zM381 1126q0 -92 49 -153q47 -57 186 -125q231 104 232 278q0 102 -64 154q-66 53 -172 53q-104 0 -167.5 -53.5t-63.5 -153.5z" />
<glyph unicode="9" d="M154 991q0 227 120 361q119 131 324 131q221 0 348 -170q129 -172 129 -475q0 -858 -639 -858q-104 0 -172 18v156q68 -25 166 -25q221 0 336 141.5t123 446.5h-12q-96 -170 -308 -170q-193 0 -305 119q-110 116 -110 325zM330 991q0 -143 69 -223q68 -78 195 -78 q129 0 213 82q86 84 86 184q0 152 -80 262.5t-213 110.5q-127 0 -198.5 -88t-71.5 -250z" />
<glyph unicode=":" d="M487 110.5q0 139.5 127 139.5t127 -139.5t-127 -139.5t-127 139.5zM487 987q0 139 127 139t127 -139t-127 -139t-127 139z" />
<glyph unicode=";" d="M410 -264q66 276 100 502h199l14 -23q-55 -209 -176 -479h-137zM494 987q0 139 127 139t127 -139t-127 -139t-127 139z" />
<glyph unicode="&#x3c;" d="M152 672v102l923 451v-160l-715 -342l715 -342v-160z" />
<glyph unicode="=" d="M152 442v150h923v-150h-923zM152 852v149h923v-149h-923z" />
<glyph unicode="&#x3e;" d="M152 221v160l714 342l-714 342v160l923 -451v-102z" />
<glyph unicode="?" d="M168 1386q205 96 426 97q217 0 340 -97q125 -98 125 -262q0 -133 -53 -217q-52 -83 -197 -190q-119 -88 -151.5 -141.5t-32.5 -143.5v-18h-160v37q0 119 47 194.5t160 157.5q131 100 172 155.5t41 157.5q0 92 -74 150q-72 57 -207 57q-172 0 -371 -90zM426 110.5 q0 139.5 127 139.5t127 -139.5t-127 -139.5t-127 139.5z" />
<glyph unicode="@" d="M31 602q0 395 168 629q166 231 454 231q248 0 396 -196q150 -199 149 -535q0 -236 -63 -371q-66 -139 -179 -139q-131 0 -157 180h-4q-74 -180 -230 -180q-120 0 -190 105q-70 102 -70 280q0 209 96 332q98 127 256 127q133 0 256 -47l-22 -416q-2 -25 -2 -70v-6 q0 -176 72 -176q100 0 100 383q0 279 -110.5 436.5t-299.5 157.5q-225 0 -352 -192.5t-127 -526.5q0 -311 129 -483q127 -170 369 -170q178 0 346 78v-133q-156 -82 -352 -82q-295 0 -465 207q-168 204 -168 577zM465 602q0 -252 127 -252q131 0 145 312l15 253 q-53 20 -103 21q-90 0 -137 -94.5t-47 -239.5z" />
<glyph unicode="A" d="M33 0l483 1468h195l485 -1468h-192l-144 453h-491l-146 -453h-190zM422 618h385l-133 424q-39 121 -62 226q-20 -88 -47 -183z" />
<glyph unicode="B" d="M135 0v1462h440q272 0 398 -88q123 -86 123 -282q0 -129 -78 -213t-213 -103v-10q332 -55 332 -342q0 -199 -127 -311.5t-348 -112.5h-527zM322 158h307q311 0 311 274q0 254 -324 254h-294v-528zM322 842h284q157 0 228 55q72 55 71 182q0 121 -75.5 172.5t-243.5 51.5 h-264v-461z" />
<glyph unicode="C" d="M129 733q0 344 178 547t490 203q219 0 383 -86l-78 -156q-156 78 -305 78q-215 0 -342 -158q-129 -160 -129 -430q0 -287 120 -438q119 -150 351 -150q135 0 327 58v-162q-150 -59 -358 -59q-310 0 -473 196q-164 199 -164 557z" />
<glyph unicode="D" d="M135 0v1462h342q319 0 494 -188q176 -193 176 -529q0 -365 -182 -552q-186 -193 -529 -193h-301zM322 160h96q532 0 532 579q0 563 -493 564h-135v-1143z" />
<glyph unicode="E" d="M217 0v1462h842v-164h-656v-452h617v-162h-617v-520h656v-164h-842z" />
<glyph unicode="F" d="M244 0v1462h841v-164h-655v-516h617v-164h-617v-618h-186z" />
<glyph unicode="G" d="M117 733q0 352 161.5 551t446.5 199q193 0 346 -86l-72 -162q-150 84 -280 84q-193 0 -299.5 -155.5t-106.5 -432.5q0 -588 394 -588q94 0 202 29v436h-237v164h422v-717q-199 -76 -420 -75q-262 0 -410 200q-147 200 -147 553z" />
<glyph unicode="H" d="M135 0v1462h187v-616h585v616h187v-1462h-187v682h-585v-682h-187z" />
<glyph unicode="I" d="M225 0v123l295 20v1176l-295 20v123h776v-123l-294 -20v-1176l294 -20v-123h-776z" />
<glyph unicode="J" d="M137 39v166q162 -61 309 -62q162 0 254.5 80t92.5 226v1013h186v-1011q0 -215 -141 -345q-139 -127 -377 -126q-215 0 -324 59z" />
<glyph unicode="K" d="M211 0v1462h186v-731l121 168l453 563h209l-521 -637l539 -825h-211l-450 698l-140 -114v-584h-186z" />
<glyph unicode="L" d="M233 0v1462h187v-1296h635v-166h-822z" />
<glyph unicode="M" d="M113 0v1462h247l248 -1192h6l250 1192h252v-1462h-153v887q0 121 14 391h-8l-283 -1278h-154l-278 1280h-8q18 -268 18 -406v-874h-151z" />
<glyph unicode="N" d="M135 0v1462h213l578 -1204h6q-14 285 -14 404v800h174v-1462h-215l-580 1210h-8q18 -276 18 -417v-793h-172z" />
<glyph unicode="O" d="M84 735q0 750 534 750q258 0 392 -195q137 -199 137 -557q0 -362 -137 -557q-138 -197 -394 -196q-532 -1 -532 755zM281 733q0 -590 335 -590q174 0 254 145.5t80 444.5q0 305 -82 445q-84 143 -250 143q-337 0 -337 -588z" />
<glyph unicode="P" d="M176 0v1462h404q514 0 514 -428q0 -219 -137.5 -342t-403.5 -123h-191v-569h-186zM362 727h170q195 0 283 72q86 70 86 225q0 279 -338 279h-201v-576z" />
<glyph unicode="Q" d="M84 735q0 750 534 750q258 0 392 -195q137 -199 137 -557q0 -526 -285 -694q86 -180 279 -311l-121 -142q-238 172 -328 400q-37 -6 -76 -6q-532 -1 -532 755zM281 733q0 -590 335 -590q174 0 254 145.5t80 444.5q0 305 -82 445q-84 143 -250 143q-337 0 -337 -588z" />
<glyph unicode="R" d="M186 0v1462h357q520 0 520 -415q0 -287 -289 -392l397 -655h-219l-350 604h-229v-604h-187zM373 762h164q170 0 251.5 65.5t81.5 210.5q0 141 -79.5 203t-258.5 62h-159v-541z" />
<glyph unicode="S" d="M141 49v178q211 -86 414 -86q350 0 350 240q0 104 -71 160q-74 57 -285 133q-211 74 -299 174q-90 102 -90 264q0 174 129 272.5t352 98.5q225 0 416 -78l-64 -164q-197 78 -360 78q-293 0 -293 -209q0 -102 66 -164q66 -63 270 -133q244 -88 327.5 -182t83.5 -240 q0 -190 -139 -301q-138 -111 -393 -110q-258 -1 -414 69z" />
<glyph unicode="T" d="M102 1298v164h1022v-164h-417v-1298h-187v1298h-418z" />
<glyph unicode="U" d="M125 520v942h186v-932q0 -387 307 -387q293 0 300 389v932h186v-948q0 -260 -125 -397q-127 -139 -371 -139q-483 -1 -483 540z" />
<glyph unicode="V" d="M33 1462h196l295 -927q45 -143 88 -334q33 152 93 340l292 921h199l-489 -1462h-187z" />
<glyph unicode="W" d="M2 1462h170l88 -663q18 -145 39 -377q18 -203 18 -242q27 162 70 312l141 516h177l145 -521q57 -205 72 -307q6 92 65 619l70 663h170l-187 -1462h-190l-168 580q-43 147 -66 282q-31 -168 -65 -284l-156 -578h-190z" />
<glyph unicode="X" d="M53 0l453 764l-422 698h199l331 -559l334 559h191l-422 -692l457 -770h-211l-355 635l-366 -635h-189z" />
<glyph unicode="Y" d="M33 1462h203l376 -739l381 739h201l-487 -893v-569h-187v559z" />
<glyph unicode="Z" d="M102 0v145l793 1151h-772v166h981v-145l-793 -1151h813v-166h-1022z" />
<glyph unicode="[" d="M412 -324v1786h528v-149h-346v-1487h346v-150h-528z" />
<glyph unicode="\" d="M211 1462h178l627 -1462h-178z" />
<glyph unicode="]" d="M289 -174h346v1487h-346v149h528v-1786h-528v150z" />
<glyph unicode="^" d="M111 549l424 924h102l481 -924h-162l-368 735l-318 -735h-159z" />
<glyph unicode="_" d="M-16 -184h1259v-140h-1259v140z" />
<glyph unicode="`" d="M418 1548v21h219q88 -182 174 -301v-27h-121q-163 139 -272 307z" />
<glyph unicode="a" d="M135 307q0 332 510 348l203 7v69q0 236 -244 236q-150 0 -328 -82l-63 137q199 96 383 96q223 0 328 -88q102 -86 102 -278v-752h-131l-37 152h-8q-74 -94 -158 -133t-209 -39q-164 0 -256 85.5t-92 241.5zM324 305q0 -178 200 -178q150 0 234 82q88 84 88 229v99 l-162 -7q-195 -8 -278 -61q-82 -51 -82 -164z" />
<glyph unicode="b" d="M158 0v1556h182v-376q0 -96 -8 -226h8q109 164 322 164q203 0 315 -149q115 -152 115 -418q0 -268 -115 -419.5t-315 -151.5q-207 0 -322 159h-12l-37 -139h-133zM340 551q0 -229 70 -324q72 -96 221 -96q272 0 272 422q0 414 -274 414q-154 0 -221.5 -94.5t-67.5 -321.5 z" />
<glyph unicode="c" d="M172 543q0 279 145 428q145 147 408 147q176 0 336 -59l-62 -158q-147 57 -268 57q-371 0 -371 -413q0 -406 361 -406q160 0 321 62v-160q-135 -61 -329 -61q-258 0 -400 145q-141 145 -141 418z" />
<glyph unicode="d" d="M137 547q0 268 115 419.5t315 151.5q205 0 322 -160h12q-12 129 -12 162v436h182v-1556h-147l-27 147h-8q-115 -168 -322 -167q-203 0 -315 149q-115 152 -115 418zM326 545q0 -414 274 -414q152 0 219 88q66 88 70 287v41q0 229 -70 323q-72 96 -221 97 q-272 0 -272 -422z" />
<glyph unicode="e" d="M133 541q0 266 135 421.5t363 155.5q212 0 338 -135q127 -137 127 -356v-113h-774q9 -375 344 -375q199 0 370 76v-160q-170 -76 -364 -75q-244 0 -391 149q-148 151 -148 412zM326 662h573q0 305 -272 305q-276 0 -301 -305z" />
<glyph unicode="f" d="M156 961v110l317 33v96q0 195 90 281q88 86 299 86q125 0 252 -35l-41 -143q-109 29 -207 28q-123 0 -168 -51q-43 -49 -43 -164v-104h389v-137h-389v-961h-182v961h-317z" />
<glyph unicode="g" d="M102 -186q0 212 240 270q-96 47 -96 154q0 113 133 192q-86 35 -139 123q-51 84 -52 186q0 182 106.5 280.5t303.5 98.5q88 0 150 -20h378v-113l-196 -27q66 -88 65 -213q0 -162 -106 -256q-109 -96 -297 -96q-55 0 -86 6q-100 -55 -100 -133q0 -84 161 -84h187 q172 0 266 -78q92 -76 92 -219q0 -377 -565 -377q-218 0 -332 80q-113 81 -113 226zM274 -180q0 -174 271 -174q395 0 395 223q0 88 -49 118.5t-199 30.5h-188q-230 1 -230 -198zM367 745q0 -227 227 -227q223 0 223 230q0 240 -225 239.5t-225 -242.5z" />
<glyph unicode="h" d="M160 0v1556h182v-462l-8 -144h10q104 168 336 168q389 0 389 -401v-717h-182v707q0 260 -238 260q-307 0 -307 -398v-569h-182z" />
<glyph unicode="i" d="M197 0v123l344 20v811l-269 21v123h451v-955l352 -20v-123h-878zM526 1435.5q0 114.5 106.5 114.5t106.5 -114q0 -57 -32.5 -86t-73.5 -29q-107 0 -107 114.5z" />
<glyph unicode="j" d="M135 -303q131 -39 289 -39q119 0 182 57q66 59 66 158v1081l-420 21v123h602v-1215q0 -180 -113 -278q-111 -96 -319 -97q-160 0 -287 35v154zM637 1435.5q0 114.5 106.5 114.5t106.5 -114.5t-106.5 -114.5t-106.5 114.5z" />
<glyph unicode="k" d="M215 0v1556h180v-714l-16 -289h4l135 152l395 393h222l-494 -475l522 -623h-213l-426 504l-129 -82v-422h-180z" />
<glyph unicode="l" d="M188 0v123l344 20v1270l-268 21v122h451v-1413l352 -20v-123h-879z" />
<glyph unicode="m" d="M92 0v1098h127l27 -148h10q68 168 201 168q164 0 213 -182h6q78 182 219 182q129 0 186 -92q57 -90 58 -309v-717h-162v707q0 147 -27 202q-27 57 -88 58q-88 0 -127 -82q-39 -80 -39 -279v-606h-161v707q0 260 -125 260q-82 0 -119 -80t-37 -318v-569h-162z" />
<glyph unicode="n" d="M160 0v1098h147l27 -148h10q104 168 336 168q389 0 389 -401v-717h-182v707q0 260 -238 260q-307 0 -307 -398v-569h-182z" />
<glyph unicode="o" d="M115 551q0 264 135 415.5t366 151.5q217 0 356.5 -155.5t139.5 -411.5q0 -266 -137 -418q-139 -154 -365 -153q-219 0 -356 155q-139 158 -139 416zM303 551q0 -420 311 -420q309 0 310 420q0 416 -312 416q-309 0 -309 -416z" />
<glyph unicode="p" d="M158 -492v1590h147l27 -148h8q111 168 322 168q203 0 315 -149q115 -152 115 -418q0 -268 -115 -419.5t-315 -151.5q-207 0 -322 159h-12q12 -129 12 -162v-469h-182zM340 551q0 -229 70 -324q72 -96 221 -96q272 0 272 422q0 414 -274 414q-152 0 -219.5 -88t-69.5 -287 v-41z" />
<glyph unicode="q" d="M137 547q0 268 115 419.5t315 151.5q209 0 322 -168h8l27 148h147v-1590h-182v469q0 41 12 170h-12q-115 -168 -322 -167q-203 0 -315 149q-115 152 -115 418zM326 545q0 -414 274 -414q152 0 219 88q66 88 70 287v41q0 229 -70 323q-72 96 -221 97q-272 0 -272 -422z " />
<glyph unicode="r" d="M264 0v1098h148l22 -201h8q76 117 162 170q84 51 215 51q119 0 240 -45l-49 -166q-121 45 -224 45q-163 0 -251 -92q-88 -90 -89 -268v-592h-182z" />
<glyph unicode="s" d="M203 49v166q195 -86 370 -86q274 0 275 162q0 55 -49 98t-226 107q-233 86 -294 159q-59 72 -60 172q0 135 111 213q113 78 309.5 78t368.5 -74l-60 -149q-184 72 -319 72q-236 0 -236 -133q0 -57 51.5 -96.5t231.5 -102.5q207 -76 280 -152q70 -72 70 -182 q0 -150 -116.5 -235.5t-331.5 -85.5q-246 -1 -375 69z" />
<glyph unicode="t" d="M139 961v94l267 49l77 287h105v-293h438v-137h-438v-637q0 -195 192 -195q98 0 240 21v-138q-137 -33 -252 -32q-362 0 -362 344v637h-267z" />
<glyph unicode="u" d="M160 381v717h182v-707q0 -260 236 -260q162 0 235.5 92t73.5 305v570h182v-1098h-147l-27 147h-10q-106 -168 -334 -167q-391 0 -391 401z" />
<glyph unicode="v" d="M82 1098h188l240 -652q84 -225 100 -325h6q8 53 101 325l239 652h189l-416 -1098h-231z" />
<glyph unicode="w" d="M-4 1098h162l98 -543q39 -215 57 -393h6q33 195 68 358l133 578h193l127 -578q43 -188 67 -358h6q29 225 60 393l102 543h158l-225 -1098h-195l-131 596l-68 330h-6l-65 -334l-135 -592h-189z" />
<glyph unicode="x" d="M96 0l414 563l-393 535h207l290 -410l291 410h207l-395 -535l413 -563h-206l-310 436l-311 -436h-207z" />
<glyph unicode="y" d="M82 1098h188l262 -654q82 -203 89 -290h6q20 106 90 292l239 652h189l-475 -1241q-70 -178 -156 -263q-89 -86 -246 -86q-94 0 -168 17v145q61 -12 136 -12q96 0 149 41t96 141l58 150z" />
<glyph unicode="z" d="M182 0v125l660 836h-627v137h811v-146l-647 -815h665v-137h-862z" />
<glyph unicode="{" d="M225 492v155q338 0 338 189v333q0 287 438 293v-149q-147 -4 -200 -39q-55 -37 -56 -119v-332q0 -209 -233 -248v-12q233 -39 233 -248v-331q0 -82 56 -119q53 -35 200 -39v-150q-438 6 -438 293v334q0 189 -338 189z" />
<glyph unicode="|" d="M539 -492v2048h149v-2048h-149z" />
<glyph unicode="}" d="M227 -174q141 0 198.5 39t57.5 119v331q0 209 234 248v12q-233 39 -234 248v332q0 80 -57 119t-199 39v149q438 -6 439 -293v-333q0 -188 338 -189v-155q-338 0 -338 -189v-334q0 -287 -439 -293v150z" />
<glyph unicode="~" d="M152 586v162q98 109 247 108q102 0 248 -63q129 -55 201 -56q106 0 227 121v-162q-98 -109 -248 -108q-102 0 -247 63q-133 55 -201 56q-106 0 -227 -121z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa2;" d="M172 743q0 494 434 568v172h137v-164q158 -2 318 -59l-62 -158q-147 57 -268 57q-371 0 -371 -414q0 -406 361 -405q152 0 321 61v-159q-123 -59 -299 -62v-200h-137v206q-434 68 -434 557z" />
<glyph unicode="&#xa3;" d="M119 0v154q201 49 200 284v213h-198v137h198v324q0 166 109 268q106 100 289 101q193 0 346 -80l-66 -144q-143 72 -272 72q-223 0 -223 -246v-295h377v-137h-377v-211q0 -199 -140 -274h748v-166h-991z" />
<glyph unicode="&#xa5;" d="M78 1462h192l342 -739l346 739h191l-385 -768h240v-137h-302v-158h302v-137h-302v-262h-178v262h-301v137h301v158h-301v137h234z" />
<glyph unicode="&#xa9;" d="M6 731q0 342 160 547t448 205q283 0 447 -203q162 -201 162 -549t-162 -549q-164 -203 -447 -202q-285 0 -446.5 204.5t-161.5 546.5zM115 731q0 -301 129 -473q127 -170 370 -170q242 0 369 170q131 174 131 473t-131 473q-127 170 -368.5 170t-370.5 -172t-129 -471z M248 733q0 209 110.5 332t300.5 123q127 0 254 -62l-61 -127q-106 53 -193 54q-123 0 -186 -86q-66 -88 -65 -236q0 -324 251 -323q98 0 215 45v-131q-108 -49 -221 -50q-197 0 -301 123t-104 338z" />
<glyph unicode="&#xad;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#xae;" d="M6 731q0 342 160 547t448 205q283 0 447 -203q162 -201 162 -549t-162 -549q-164 -203 -447 -202q-285 0 -446.5 204.5t-161.5 546.5zM115 731q0 -301 129 -473q127 -170 370 -170q242 0 369 170q131 174 131 473t-131 473q-127 170 -368.5 170t-370.5 -172t-129 -471z M348 285v893h234q326 0 325 -265q0 -163 -159 -233l237 -395h-178l-207 352h-94v-352h-158zM506 768h72q170 0 170 141q0 74 -41 103q-43 31 -132 30h-69v-274z" />
<glyph unicode="&#xb4;" d="M418 1241v27q92 127 174 301h219v-21q-109 -168 -272 -307h-121z" />
<glyph unicode="&#x2000;" horiz-adv-x="782" />
<glyph unicode="&#x2001;" horiz-adv-x="1568" />
<glyph unicode="&#x2002;" horiz-adv-x="782" />
<glyph unicode="&#x2003;" horiz-adv-x="1568" />
<glyph unicode="&#x2004;" horiz-adv-x="522" />
<glyph unicode="&#x2005;" horiz-adv-x="391" />
<glyph unicode="&#x2006;" horiz-adv-x="260" />
<glyph unicode="&#x2007;" horiz-adv-x="260" />
<glyph unicode="&#x2008;" horiz-adv-x="194" />
<glyph unicode="&#x2009;" horiz-adv-x="311" />
<glyph unicode="&#x200a;" horiz-adv-x="86" />
<glyph unicode="&#x2010;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#x2011;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#x2012;" d="M285 465v168h659v-168h-659z" />
<glyph unicode="&#x2013;" d="M184 465v168h860v-168h-860z" />
<glyph unicode="&#x2014;" d="M-6 465v168h1241v-168h-1241z" />
<glyph unicode="&#x2018;" d="M446 983q57 217 177 479h157q-66 -276 -100 -501h-219z" />
<glyph unicode="&#x2019;" d="M446 961q61 254 101 501h219l14 -22q-53 -207 -176 -479h-158z" />
<glyph unicode="&#x201c;" d="M233 983q57 217 177 479h157q-66 -276 -100 -501h-219zM659 983q57 217 177 479h157q-66 -276 -100 -501h-219z" />
<glyph unicode="&#x201d;" d="M233 961q61 254 101 501h219l14 -22q-53 -207 -176 -479h-158zM659 961q61 254 101 501h219l14 -22q-53 -207 -176 -479h-158z" />
<glyph unicode="&#x2022;" d="M379 748q0 262 235.5 262t235.5 -262q0 -129 -64 -195q-65 -68 -172 -68q-113 0 -174 68t-61 195z" />
<glyph unicode="&#x2026;" d="M78 110.5q0 139.5 127 139.5t127 -139.5t-127 -139.5t-127 139.5zM487 110.5q0 139.5 127 139.5t127 -139.5t-127 -139.5t-127 139.5zM897 110.5q0 139.5 127 139.5t127 -139.5t-127 -139.5t-127 139.5z" />
<glyph unicode="&#x202f;" horiz-adv-x="311" />
<glyph unicode="&#x205f;" horiz-adv-x="391" />
<glyph unicode="&#x20ac;" d="M96 502v137h148l-2 39l2 119h-148v137h160q41 262 180 405q141 143 359 144q193 0 335 -92l-79 -146q-123 74 -242 74q-133 0 -234 -100q-96 -96 -133 -285h432v-137h-446q0 -6 -1 -14.5t-1 -14.5v-25v-61q0 -29 2 -43h385v-137h-367q74 -358 369 -359q139 0 268 58v-162 q-125 -59 -282 -59q-444 0 -541 522h-164z" />
<glyph unicode="&#x2122;" d="M0 1354v108h481v-108h-178v-613h-127v613h-176zM526 741v721h187l139 -534l149 534h179v-721h-127v342q0 74 10 207h-12l-154 -549h-100l-146 549h-12l10 -180v-369h-123z" />
<glyph unicode="&#xe000;" horiz-adv-x="1100" d="M0 1100h1100v-1100h-1100v1100z" />
<glyph unicode="&#xfb01;" d="M49 961v75l195 68v96q0 190 75.5 278.5t255.5 88.5q96 0 197 -37l-47 -141q-82 29 -143 28q-90 0 -123 -51q-33 -53 -33 -164v-104h246v-137h-246v-961h-182v961h-195zM854 1394.5q0 114.5 106.5 114.5t106.5 -114q0 -58 -31 -86q-33 -29 -75 -29q-107 0 -107 114.5z M868 0v1098h183v-1098h-183z" />
<glyph unicode="&#xfb02;" d="M49 961v75l195 68v96q0 190 75.5 278.5t255.5 88.5q96 0 197 -37l-47 -141q-82 29 -143 28q-90 0 -123 -51q-33 -53 -33 -164v-104h246v-137h-246v-961h-182v961h-195zM868 0v1556h183v-1556h-183z" />
<glyph unicode="&#xfb03;" d="M66 971v65l100 62v82q0 109 20 176q23 76 58 112q37 39 96 60q55 18 127 18q57 0 92 -10q47 -14 78 -25q43 33 88 43q53 12 115 13q59 0 98 -11q49 -14 82 -26l-41 -131q-18 8 -64 20q-31 8 -71 8q-37 0 -66 -12q-27 -12 -45 -37q-16 -23 -26 -69q-8 -39 -9 -107v-104 h367v-1098h-164v971h-203v-971h-163v971h-205v-971h-164v971h-100zM330 1098h205v102q0 115 24 193q-29 8 -43 10q-29 4 -45 4q-39 0 -61 -10q-27 -12 -45 -37q-14 -18 -25 -70q-10 -47 -10 -108v-84z" />
<glyph unicode="&#xfb04;" d="M66 971v65l100 62v82q0 109 20 176q23 76 58 112q37 39 96 60q55 18 127 18q57 0 92 -10q47 -14 78 -25q43 33 88 43q53 12 115 13q55 0 94 -11h131v-1556h-164v1421q-20 4 -29 4q-4 0 -14 1t-14 1q-37 0 -66 -12q-27 -12 -45 -37q-16 -23 -26 -69q-8 -39 -9 -107v-104 h142v-127h-142v-971h-163v971h-205v-971h-164v971h-100zM330 1098h205v102q0 115 24 193q-29 8 -43 10q-29 4 -45 4q-39 0 -61 -10q-27 -12 -45 -37q-14 -18 -25 -70q-10 -47 -10 -108v-84z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Binary file not shown.

14
fonts/inconsolata.css Normal file
View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'InconsolataRegular';
src: url('inconsolata/inconsolata-webfont.eot');
src: url('inconsolata/inconsolata-webfont.eot?#iefix') format('embedded-opentype'),
url('inconsolata/inconsolata-webfont.woff') format('woff'),
url('inconsolata/inconsolata-webfont.ttf') format('truetype'),
url('inconsolata/inconsolata-webfont.svg#InconsolataRegular') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-inconsolata * {
font-family: Inconsolata, 'InconsolataRegular', 'Courier New', monospace !important;
}

Binary file not shown.

View File

@ -0,0 +1,147 @@
<?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>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : Created by Raph Levien using his own tools and FontForge Copyright 2006 Raph Levien Released under the SIL Open Font License httpscriptssilorgOFL
</metadata>
<defs>
<font id="webfont9rzdef9O" horiz-adv-x="1024" >
<font-face units-per-em="2048" ascent="1679" descent="-369" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M369 97q0 50 35.5 86t86 36t86 -36t35.5 -86t-35.5 -85t-86 -35t-86 35t-35.5 85zM389 1214q0 53 14 89q27 66 91 65q31 0 58.5 -22.5t39.5 -65.5q6 -31 6 -84q0 -45 -8 -127t-10 -106l-37 -566h-103l-30 566q-4 70 -12.5 144t-8.5 107z" />
<glyph unicode="&#x22;" d="M227 870l45 140q20 61 21 112q0 23 -7 66t-7 63q0 57 26.5 85t61.5 28t63.5 -30.5t28.5 -94.5q0 -72 -68 -260l-49 -135zM582 870l45 140q18 61 18 112q0 23 -6 66t-6 63q0 57 26.5 85t61.5 28t63.5 -30.5t28.5 -94.5q0 -72 -70 -260l-49 -135z" />
<glyph unicode="#" d="M51 387l8 94l203 4l41 349l-223 -3l6 97l227 2l41 348l125 6l-43 -352l226 2l40 334l127 4l-41 -336l187 2l-12 -98l-187 -2l-43 -344l203 4l-10 -97l-203 -4l-45 -368l-125 -9l45 375l-227 -2l-43 -364l-121 -6l43 368zM383 487l225 5l43 344l-227 -2z" />
<glyph unicode="$" d="M123 193l88 122q8 -6 8 -20t6 -23q102 -109 256 -125v451q-66 20 -112 43q-207 98 -207 272q0 111 89 195t230 102v123h131q2 -4 2 -8q0 -6 -7 -15.5t-7 -19.5v-78q190 -20 305 -157l-88 -111q-10 2 -10 14l-2 17q-2 4 -10 12q-70 84 -195 105v-396q92 -31 137 -49 q205 -88 205 -276q0 -119 -89 -217.5t-253 -120.5v-129h-119v125q-221 14 -358 164zM297 930q0 -92 113 -158q29 -16 71 -33v355q-90 -10 -137 -57.5t-47 -106.5zM600 152q96 18 152.5 78.5t56.5 131.5q0 100 -102 156q-35 18 -107 41v-407z" />
<glyph unicode="%" d="M57 1032q0 115 68 190.5t162 75.5t161.5 -76.5t67.5 -193.5q0 -113 -66.5 -188.5t-160.5 -75.5q-96 0 -164 76.5t-68 191.5zM94 0l707 1276h137l-713 -1276h-131zM182 1038q0 -92 33 -129t72 -37t69.5 36t30.5 116q0 96 -32.5 132t-71.5 36q-37 0 -69 -36t-32 -118z M530 244q0 115 68 190.5t162 75.5t160.5 -76t66.5 -188q0 -115 -66.5 -190.5t-160.5 -75.5t-162 75.5t-68 188.5zM651 244q0 -82 34 -122t75 -40t73.5 38t32.5 120q0 88 -33.5 127t-74.5 39t-74 -38t-33 -124z" />
<glyph unicode="&#x26;" d="M74 299q0 119 70.5 228.5t187.5 174.5q-145 174 -146 318q0 115 82 191.5t201 76.5q117 0 195.5 -77.5t78.5 -194.5q0 -100 -60 -193.5t-161 -146.5l230 -322q63 74 92 166q2 8 2 17q0 4 -1 11t-1 13q0 12 8 21l133 -93q-70 -125 -156 -237l144 -186l-121 -91l-113 181 q-63 -80 -154 -128t-192 -48q-137 0 -228 91t-91 228zM229 313q0 -88 53.5 -145t133.5 -57q61 0 122.5 35.5t94.5 70.5l31 35l-261 354q-82 -51 -128 -131t-46 -162zM328 1018q0 -98 125 -254q72 39 113.5 105.5t41.5 136.5q0 72 -42 116.5t-99 44.5t-98 -41.5t-41 -107.5z " />
<glyph unicode="'" d="M422 870l45 140q20 61 20 112q0 23 -7 66t-7 63q0 57 26.5 85t61.5 28t63.5 -30.5t28.5 -94.5q0 -72 -67 -260l-51 -135z" />
<glyph unicode="(" d="M285 528.5q0 280.5 139 506t379 329.5l61 -125q-8 -4 -16 -4q-4 0 -11.5 1t-11.5 1q-6 0 -18 -6q-178 -106 -279.5 -290.5t-101.5 -403.5q0 -242 119 -452t325 -331l-65 -108q-244 127 -382 364.5t-138 518z" />
<glyph unicode=")" d="M147 -233q209 111 331 310t122 431q0 227 -119 422.5t-321 304.5l39 127q250 -115 398 -345.5t148 -502.5q0 -276 -151.5 -513t-407.5 -357z" />
<glyph unicode="*" d="M84 723l53 133l332 -156l-33 363h166q-2 -12 -6 -27.5t-6 -27.5l-31 -308l326 148l53 -125l-350 -107l258 -309l-113 -88l-221 340l-229 -342l-111 90l266 307z" />
<glyph unicode="+" d="M92 596v125h363v350h129v-350h350v-125h-350v-383h-129v383h-363z" />
<glyph unicode="," d="M338 -283q57 53 102 127q31 49 31 86q0 41 -47 72q-57 39 -57 92q0 47 33.5 82t82.5 35q57 0 100.5 -47t43.5 -123q0 -164 -219 -385z" />
<glyph unicode="-" d="M145 575v138h738v-138h-738z" />
<glyph unicode="." d="M367 94q0 49 35.5 84t86 35t86 -35t35.5 -84t-35.5 -83t-86 -34t-86 34t-35.5 83z" />
<glyph unicode="/" d="M131 -27l641 1389l123 -64l-643 -1384z" />
<glyph unicode="0" d="M102 629q0 291 125 473t287 182q76 0 147.5 -44t130 -125t94.5 -211t36 -287.5t-37 -283.5t-96.5 -202t-129 -115t-143.5 -39q-162 0 -288 178.5t-126 473.5zM236 653q0 -131 28 -241l451 581q-41 82 -94.5 124t-108.5 42q-104 0 -190 -138.5t-86 -367.5zM311 283 q43 -84 98.5 -129t112.5 -45q45 0 89 27.5t85 82.5t66.5 154.5t25.5 226.5q0 141 -26 256z" />
<glyph unicode="1" d="M186 1106l328 172h96v-1167h230v-113h-602v113h235v989l-252 -74z" />
<glyph unicode="2" d="M150 0v90q76 150 163.5 258.5t206.5 216.5q45 39 61.5 54.5t56.5 58.5t57.5 72.5t33.5 75.5t16 89q0 102 -71.5 173t-173.5 71q-76 0 -133.5 -37t-85.5 -80q-4 -8 -7.5 -23t-9.5 -24l-104 82q55 96 151.5 151.5t204.5 55.5q156 0 263.5 -104.5t107.5 -253.5 q0 -63 -20.5 -125t-58.5 -114t-69.5 -86t-76.5 -77q-51 -51 -106.5 -100t-124.5 -131t-116 -168h535q12 0 22 8q14 14 27 10v-143h-749z" />
<glyph unicode="3" d="M141 123l109 129q8 -8 12 -27.5t14 -29.5q10 -12 29 -27.5t68 -37t102 -21.5q111 0 184.5 76.5t73.5 183.5q0 113 -84 177t-217 64q-33 0 -63 -4v115q127 0 200 33q63 29 99.5 84t36.5 116q0 82 -62.5 140.5t-159.5 58.5q-129 0 -219 -98l-80 88q125 137 305 137 q150 0 251.5 -95t101.5 -229q0 -92 -52.5 -167.5t-138.5 -108.5q98 -35 158.5 -125t60.5 -205q0 -154 -108.5 -263.5t-284.5 -109.5q-205 1 -336 146z" />
<glyph unicode="4" d="M98 354v105l543 819h121v-799h164v-127h-164v-352h-150v354h-514zM240 479h374v572z" />
<glyph unicode="5" d="M131 174l127 94q10 -6 11 -24.5t3 -22.5q14 -29 81 -74t155 -45q109 0 183.5 81t74.5 223q0 145 -77 225t-185 80q-66 0 -129.5 -32t-110.5 -89l-90 37l43 649h647v-129h-526l-21 -367q100 49 209 49q166 0 275.5 -113.5t109.5 -312.5q0 -201 -114.5 -313.5 t-286.5 -112.5q-115 0 -215.5 51.5t-163.5 145.5z" />
<glyph unicode="6" d="M137 582q0 238 56 391q55 160 163.5 238.5t231.5 78.5q162 0 280 -116l-100 -109q-10 6 -17.5 23.5t-13.5 21.5q-6 8 -22.5 18.5t-52 22.5t-72.5 12q-35 0 -69 -8t-79 -40t-77.5 -82t-58 -144t-27.5 -219q43 72 115.5 112.5t154.5 40.5q143 0 246.5 -113.5t103.5 -304 t-106.5 -308t-257.5 -117.5q-86 0 -166 43t-136 124q-96 148 -96 435zM287 526q-12 -176 62.5 -298t191.5 -122q90 0 154.5 76t64.5 217q0 152 -67.5 225.5t-155.5 73.5q-72 0 -139.5 -47t-110.5 -125z" />
<glyph unicode="7" d="M162 1141v135h723v-80q-131 -295 -244 -598q-109 -297 -203 -598h-162q115 344 246 682q88 231 185 459h-545z" />
<glyph unicode="8" d="M123 322q0 109 70.5 206t185.5 150q-88 45 -141.5 126t-53.5 173q0 131 99.5 223t244.5 92q141 0 236.5 -88t95.5 -215q0 -92 -55 -175t-148 -132q111 -51 178.5 -146.5t67.5 -205.5q0 -147 -112.5 -248.5t-278.5 -101.5t-277.5 99.5t-111.5 242.5zM270 340 q0 -96 72 -163.5t176 -67.5q100 0 170 64.5t70 157.5t-74 172t-199 118q-92 -39 -153.5 -116t-61.5 -165zM322 989q0 -57 34.5 -109.5t76.5 -82t79 -45.5l35 -19q76 41 125 108.5t49 139.5q0 80 -58.5 135t-144.5 55q-84 0 -140 -53t-56 -129z" />
<glyph unicode="9" d="M139 866q0 182 107.5 302t259.5 120q109 0 204 -69.5t142 -206.5q43 -129 43 -357q0 -236 -53 -379q-55 -147 -164 -221.5t-234 -74.5q-164 0 -282 116l100 109q10 -6 17.5 -24.5t15.5 -24.5q59 -47 154 -47q76 0 145.5 43t105.5 133q47 109 54 315q-45 -63 -115 -100 t-150 -37q-143 0 -246.5 112.5t-103.5 290.5zM279 872q0 -135 66.5 -209.5t158.5 -74.5q70 0 134 42t107 113q16 186 -56.5 302t-186.5 116q-92 0 -157.5 -78t-65.5 -211z" />
<glyph unicode=":" d="M367 94q0 49 35.5 84t86 35t86 -35t35.5 -84t-35.5 -83t-86 -34t-86 34t-35.5 83zM367 748.5q0 48.5 35.5 83t86 34.5t86 -34.5t35.5 -83t-35.5 -83t-86 -34.5t-86 34.5t-35.5 83z" />
<glyph unicode=";" d="M338 -283q57 53 102 127q31 49 31 86q0 41 -47 72q-57 39 -57 92q0 47 33.5 82t82.5 35q57 0 100.5 -47t43.5 -123q0 -164 -219 -385zM367 748.5q0 48.5 35.5 83t86 34.5t86 -34.5t35.5 -83t-35.5 -83t-86 -34.5t-86 34.5t-35.5 83z" />
<glyph unicode="&#x3c;" d="M72 606l872 -510v156l-717 401l711 363v145l-866 -456v-99z" />
<glyph unicode="=" d="M92 348v125h842v-125h-842zM92 772v125h842v-125h-842z" />
<glyph unicode="&#x3e;" d="M82 96v156l715 401l-711 363v145l868 -456v-99z" />
<glyph unicode="?" d="M131 1149q66 100 172.5 156.5t222.5 56.5q166 0 264.5 -105.5t98.5 -255.5q0 -55 -12.5 -100t-41 -84t-46 -57.5t-57.5 -51t-46 -36.5q-57 -51 -72.5 -97.5t-15.5 -111.5v-84h-135v84q0 82 17.5 139t78.5 125l40 41q32 33 47.5 51.5t38 52t32.5 68.5t10 72 q0 92 -61.5 154.5t-153.5 62.5q-78 0 -153.5 -48t-122.5 -130zM414 91q0 48 34.5 83t86 35t86 -35t34.5 -83t-34.5 -83t-86 -35t-86 35t-34.5 83z" />
<glyph unicode="@" d="M63 643q0 166 45.5 296t118 206t156.5 113.5t172 37.5q115 0 209 -60t143 -167q45 -102 45 -295v-416h-123v78q-80 -94 -204 -94q-111 0 -189 78t-78 188q0 86 51.5 160t143.5 111q82 31 240 30h30q0 115 -79.5 196t-194.5 81q-68 0 -132.5 -33t-117.5 -96.5t-85 -169 t-32 -238.5q0 -143 39 -253.5t103.5 -174t139.5 -95.5t152 -32q119 0 220 68l55 -101q-131 -84 -287 -84q-100 0 -193.5 38t-172 115t-127 210t-48.5 303zM485 614q0 -68 47.5 -113.5t114.5 -45.5q47 0 88 23.5t64 68.5q14 29 21 72t8 66.5t1 82.5v39h-34q-158 0 -228 -47 q-82 -56 -82 -146z" />
<glyph unicode="A" d="M31 -2l450 1300h17l491 -1298h-147l-142 373h-405l-123 -375h-141zM324 483h344l-181 488z" />
<glyph unicode="B" d="M98 0v1276h363q158 0 239 -35q88 -39 136.5 -113.5t48.5 -162.5q0 -92 -51.5 -169t-137.5 -112q106 -37 173 -128t67 -202q0 -102 -56.5 -187t-156.5 -128q-90 -39 -264 -39h-361zM240 125h243q109 0 166 27q63 29 99 87t36 130q0 70 -37.5 132t-105.5 95q-68 31 -192 31 h-209v-502zM240 748h200q117 0 176.5 25.5t92 73.5t32.5 103q0 57 -33.5 106.5t-95.5 73.5q-57 25 -170 25h-202v-407z" />
<glyph unicode="C" d="M84 631q0 147 31.5 264t81 188.5t116 118.5t129 65.5t127.5 18.5q127 0 232.5 -68.5t159.5 -183.5l-138 -67q-8 6 -8 20v7v7q0 10 -6 23q-41 68 -106.5 107.5t-139.5 39.5q-141 0 -240.5 -142t-99.5 -386q0 -248 102.5 -394.5t249.5 -146.5q76 0 147 42t114 114l106 -70 q-59 -98 -159.5 -153t-215.5 -55q-66 0 -131 19t-129.5 67.5t-114 121t-79 187.5t-29.5 256z" />
<glyph unicode="D" d="M111 -2v1278h297q98 0 165.5 -13.5t131.5 -54.5q121 -78 179 -227.5t58 -339.5q0 -211 -72.5 -366.5t-210.5 -225.5q-100 -51 -276 -51h-272zM246 111h131q76 0 130 11t107 46q184 125 185 453q0 332 -160 462q-53 45 -108.5 58.5t-131.5 13.5h-153v-1044z" />
<glyph unicode="E" d="M121 0v1278h782v-127h-647v-420h535v-131h-535v-473h641v-127h-776z" />
<glyph unicode="F" d="M160 0v1278h735v-125h-592v-401h477v-125h-477v-627h-143z" />
<glyph unicode="G" d="M74 623q0 160 35.5 283.5t89 193t123 115t129 59.5t116.5 14q119 0 217.5 -57t153.5 -156l-100 -102q-12 8 -27 39q-31 68 -96.5 109.5t-147.5 41.5q-86 0 -162.5 -47t-123.5 -135q-66 -121 -66 -328q0 -297 123 -436q96 -111 242 -111q121 0 229 78v303h-231v125h364 v-499q-180 -133 -375 -133q-70 0 -137.5 20t-133 68.5t-113.5 119t-78.5 183.5t-30.5 252z" />
<glyph unicode="H" d="M111 0v1276h159q2 -4 2 -10t-6 -16.5t-6 -22.5v-498h500v547h155q2 -4 3 -8q0 -8 -7.5 -17.5t-7.5 -19.5v-1233h-145v610h-498v-608h-149z" />
<glyph unicode="I" d="M166 -2v121h252v1036h-238v121h633v-121h-252v-1038h264v-119h-659z" />
<glyph unicode="J" d="M100 119l97 117q6 -6 7 -19.5t5 -17.5q8 -10 27.5 -28.5t67.5 -42.5t97 -24q96 0 150 80q23 33 34 81t12 76t1 85v729h-246v121h584v-121h-197v-727q0 -61 -2 -97t-13 -88.5t-36 -95.5q-43 -82 -119.5 -126t-169.5 -44q-86 0 -164 37t-135 105z" />
<glyph unicode="K" d="M86 0v1278h172q2 -12 -12 -29q-6 -10 -6 -24v-537l532 598q41 -10 107 -10h53l-483 -551l516 -727l-183 -6l-442 647l-100 -111v-528h-154z" />
<glyph unicode="L" d="M135 -2v1278h168q2 -14 -8 -33q-10 -18 -10 -37v-1083h614v-125h-764z" />
<glyph unicode="M" d="M84 -2v1278h113l315 -625l322 627h108v-1280h-135v965l-277 -514h-55l-258 507v-958h-133z" />
<glyph unicode="N" d="M102 0v1276h140l536 -946v948h152q2 -12 -6 -27q-8 -14 -9 -28v-1225h-112l-563 1006v-1004h-138z" />
<glyph unicode="O" d="M59 640q0 144 30 260t77 186.5t109.5 118.5t123 66.5t121.5 18.5q109 0 208 -61.5t159 -177.5q78 -154 78 -416q0 -254 -76 -408q-59 -123 -158.5 -185t-210.5 -62q-61 0 -122.5 20t-123 69.5t-108.5 122t-77 188.5t-30 260zM201 659q0 -145 29.5 -254.5t77.5 -169 t101.5 -87t110.5 -27.5q72 0 137.5 42t106.5 130q57 121 57 323q0 215 -49 338q-41 102 -111.5 151.5t-146.5 49.5q-55 0 -106.5 -24.5t-99.5 -79t-77.5 -156t-29.5 -236.5z" />
<glyph unicode="P" d="M121 0v1276h389q156 0 240 -43q88 -45 136 -131t48 -185.5t-47 -183.5t-133 -129q-82 -41 -234 -41h-252v-563h-147zM266 690h258q96 0 150 25q53 29 82.5 81t29.5 113q0 66 -31.5 121t-88.5 84q-55 27 -156 27h-242z" />
<glyph unicode="Q" d="M59 639q0 145 31 261t77 186.5t108.5 118.5t123 66.5t121.5 18.5q109 0 208 -62.5t161 -180.5q76 -152 76 -414q0 -254 -76 -408q-51 -100 -130 -160.5t-171 -78.5q4 -68 34.5 -111t116.5 -43q25 0 81.5 5t84.5 5l-4 -139q-34 -1 -66 -1q-63 0 -117 3q-81 4 -132 29 q-125 63 -123 252q-76 10 -142.5 51t-128 114.5t-97.5 199.5t-36 288zM199 662q0 -145 29.5 -256t76.5 -172.5t102.5 -91t114.5 -29.5q37 0 74 11t80 45t75.5 86t54 145.5t21.5 215.5q0 211 -51 340q-43 104 -114.5 153.5t-147.5 49.5q-57 0 -109.5 -26.5t-99.5 -81 t-76.5 -155.5t-29.5 -234z" />
<glyph unicode="R" d="M115 0v1276h377q160 0 243 -43q86 -43 133 -126t47 -181q0 -127 -71.5 -226.5t-188.5 -130.5l295 -569h-159l-283 563h-248v-563h-145zM260 690h248q96 0 147 25q55 29 84 81t29 113q0 66 -30.5 121t-90.5 84q-53 27 -155 27h-232v-451z" />
<glyph unicode="S" d="M106 143l84 148q10 -6 11 -21q0 -14 6 -22q47 -59 127 -99t176 -40q131 0 206 69.5t75 161.5q0 109 -109 176q-37 23 -184.5 83t-212.5 108q-137 100 -138 249q0 133 111 230.5t279 97.5q104 0 196 -42t158 -118l-90 -123q-10 4 -11.5 17.5t-5.5 19.5q-39 57 -106.5 92 t-151.5 35q-106 0 -168.5 -55t-62.5 -131q0 -115 131 -191q29 -18 185.5 -83.5t222.5 -126.5q98 -92 98 -230q0 -66 -23.5 -127t-72 -117.5t-133.5 -90t-197 -33.5q-248 -1 -400 163z" />
<glyph unicode="T" d="M63 1149v129h885v-129h-377v-1151h-145v1151h-363z" />
<glyph unicode="U" d="M102 440v836h162q2 -4 2 -10q0 -8 -14 -29q-8 -10 -8 -27v-772q0 -123 30 -188q33 -72 99.5 -112t144.5 -40q76 0 142.5 39t99.5 111q33 68 33 196v832h137v-830q0 -86 -9.5 -148t-41.5 -122q-53 -96 -150.5 -147.5t-212.5 -51.5q-117 0 -214 51.5t-150 147.5 q-31 57 -40.5 117.5t-9.5 146.5z" />
<glyph unicode="V" d="M51 1278h150l327 -981l310 979h141l-428 -1284h-66z" />
<glyph unicode="W" d="M35 1276h133l137 -862l205 768h45l207 -772l117 866h120l-202 -1284h-56l-219 842l-223 -842h-59z" />
<glyph unicode="X" d="M84 0l348 651l-342 627h154l268 -485l264 485h144l-324 -625l362 -653h-161l-283 506l-274 -506h-156z" />
<glyph unicode="Y" d="M57 1278h164l314 -621l282 619h152l-363 -772v-504h-155v504z" />
<glyph unicode="Z" d="M102 -2v100l643 1049h-618v129h788l-2 -100l-630 -1051h602q14 0 31.5 7t31.5 5v-139h-846z" />
<glyph unicode="[" d="M268 -182v1554h586v-123h-455v-1315h457v-116h-588z" />
<glyph unicode="\" d="M131 1298l121 64l643 -1389l-121 -59z" />
<glyph unicode="]" d="M170 -66h457v1315h-455v123h584v-1554h-586v116z" />
<glyph unicode="^" d="M190 752l314 524h45l276 -522l-108 -52l-199 359l-225 -359z" />
<glyph unicode="_" d="M72 -39h882v-125h-882v125z" />
<glyph unicode="`" d="M285 1323l106 51l53 -135q25 -59 58 -98q14 -18 47 -47t47 -45q35 -49 33 -85t-29 -57q-16 -14 -38.5 -18t-53.5 9t-59 46q-45 55 -113 242z" />
<glyph unicode="a" d="M100 242q0 82 54.5 155.5t160.5 112.5q55 20 133 29.5t125.5 10.5t145.5 1h31v35q0 111 -31 159q-55 90 -193 91q-168 0 -268 -105l-72 94q125 131 334 131q111 0 195 -39.5t131 -115.5q45 -76 45 -221v-580h-139v102q-154 -125 -336 -125q-141 0 -228.5 78t-87.5 187z M248 252q0 -66 54 -114t142 -48q82 0 145.5 35t100.5 76q31 31 45.5 65.5t17.5 56t3 54.5v61h-35q-32 1 -71.5 1t-87.5 -1q-95 -2 -148 -14q-82 -20 -124 -68.5t-42 -103.5z" />
<glyph unicode="b" d="M123 0v1362h172q4 -10 -10 -23q-12 -8 -13 -22v-524q45 76 122 120.5t167 44.5q70 0 136.5 -29.5t120.5 -87t86 -150.5t32 -212q0 -123 -34 -221t-90 -157.5t-125 -91.5t-142 -32q-84 0 -157 39t-120 107l-51 -123h-94zM272 498q0 -141 7 -185q8 -63 34.5 -106 t64.5 -62.5t68.5 -27.5t59.5 -8q33 0 65.5 8t71.5 30.5t69.5 57.5t51 98.5t20.5 145.5q0 94 -21.5 165.5t-51 111.5t-68.5 64.5t-70.5 32.5t-62.5 8q-72 0 -129 -36.5t-84 -100.5q-25 -59 -25 -196z" />
<glyph unicode="c" d="M115 467q0 211 132 349t339 138q111 0 202 -46t148 -128l-105 -121q-10 6 -10 23.5t-4 24.5q-4 8 -18.5 24.5t-43 40t-76.5 40.5t-104 17q-131 0 -220 -95t-89 -251q0 -164 92.5 -268t229.5 -104q147 0 248 114l86 -100q-139 -147 -347 -148q-199 0 -329.5 139.5 t-130.5 350.5z" />
<glyph unicode="d" d="M92 475q0 129 36 226.5t95.5 151.5t125 81t136.5 27q96 0 168 -44.5t107 -117.5v563h158q0 -12 -13 -31q-8 -12 -8 -26l2 -1219q0 -51 10 -86h-147q-8 27 -8 70v80q-45 -78 -123 -124t-166 -46q-72 0 -136.5 29.5t-118.5 88t-86 155.5t-32 222zM236 500q0 -109 25.5 -190 t66.5 -122t84 -60t86 -19q76 0 140 48t91 130q18 61 19 170q0 141 -15 200q-27 94 -96.5 138.5t-144.5 44.5q-43 0 -85 -16.5t-82 -52.5t-64.5 -106.5t-24.5 -164.5z" />
<glyph unicode="e" d="M100 457q0 244 124 372.5t306 128.5q59 0 115.5 -17t110 -54t91.5 -103.5t54 -156.5q9 -56 9 -114q0 -33 -3 -67h-665q4 -98 36.5 -170.5t82 -108.5t98.5 -52.5t102 -16.5q147 0 242 105l82 -80q-121 -143 -336 -143q-199 0 -324 126t-125 351zM248 561h514q2 17 2 33 q0 94 -61 167q-71 85 -183 85q-41 0 -82 -14.5t-81 -45t-69.5 -89t-39.5 -136.5z" />
<glyph unicode="f" d="M129 764v117h203v92q0 156 51 237q49 80 134 122t185 42q180 0 287 -129l-67 -135q-4 0 -9.5 4t-7.5 12q0 18 -4 25q-33 47 -87 76.5t-118 29.5q-131 0 -188 -102q-35 -61 -35 -203v-71h307v-117h-307v-764h-141v764h-203z" />
<glyph unicode="g" d="M78 -131q0 111 153 207q-76 41 -75 125q0 92 106 180q-66 43 -102.5 110.5t-36.5 143.5q0 137 104.5 234.5t245.5 97.5q131 0 221 -90q102 85 232 85q14 0 28 -1l19 -121q-27 4 -55 4q-88 0 -162 -45q47 -72 47 -158q0 -131 -99.5 -226.5t-238.5 -95.5q-61 0 -119 23 q-66 -55 -65 -106q0 -45 55 -62q43 -10 133 -10q40 2 87 2q36 0 76 -1q93 -3 154 -28q72 -29 109 -84t37 -119q0 -51 -23.5 -99t-72 -91t-135.5 -69.5t-199 -26.5q-225 0 -324.5 65.5t-99.5 155.5zM213 -96q0 -78 92 -115q78 -31 195 -31q133 0 209 41q88 49 88 125 q0 37 -27 69t-84 40q-33 6 -108 6h-91q-98 4 -157 10q-117 -63 -117 -145zM258 644q0 -85 60.5 -145.5t145.5 -60.5t145.5 60.5t60.5 145.5t-60.5 145.5t-145.5 60.5t-145.5 -60.5t-60.5 -145.5z" />
<glyph unicode="h" d="M143 0v1362h170v-6q0 -8 -12 -23q-8 -8 -8 -20v-543q55 84 138 136t173 52q82 0 148.5 -44t101.5 -121q33 -76 33 -226v-567h-146v563q0 45 -1 72t-13 67.5t-35 67.5q-51 59 -127 59q-68 0 -129 -42t-96 -87q-47 -63 -47 -161v-539h-150z" />
<glyph unicode="i" d="M205 0v119h239v698h-227v119h375v-817h219v-119h-606zM416 1238q0 44 30.5 74.5t74.5 30.5t75 -30.5t31 -74.5t-31 -74.5t-75 -30.5t-74.5 30.5t-30.5 74.5z" />
<glyph unicode="j" d="M98 -225l97 127q6 -6 10 -19.5t8 -19.5q6 -12 23.5 -29.5t62.5 -40t94 -22.5q61 0 112.5 30.5t76.5 85.5q25 53 24 150v778h-348v121h498v-870q0 -154 -43 -236q-47 -90 -135.5 -138t-192.5 -48q-181 0 -287 131zM575 1238q0 44 32 74.5t76 30.5t74.5 -30.5t30.5 -74.5 t-30.5 -74.5t-74.5 -30.5t-76 30.5t-32 74.5z" />
<glyph unicode="k" d="M135 -2v1364h168q2 -12 -10 -31q-8 -10 -8 -22v-803l469 434q43 -10 108 -10h53l-393 -371l459 -561h-14l-176 -6l-383 477l-123 -115v-356h-150z" />
<glyph unicode="l" d="M162 0v119h276v1124h-264v119h414v-1243h274v-119h-700z" />
<glyph unicode="m" d="M78 0v936h135v-92q33 51 84 82.5t106 31.5q61 0 107.5 -38.5t58.5 -98.5q27 61 84.5 99t124.5 38q98 0 148 -75q12 -16 19 -38t11.5 -43.5t5.5 -45t1 -45.5v-47v-666h-140v666q0 106 -12 135q-23 51 -74 51q-59 0 -108 -84q-41 -66 -41 -148v-618h-137v651q0 92 -9 123 q-23 72 -88 72q-66 0 -112 -88q-29 -55 -29 -133v-625h-135z" />
<glyph unicode="n" d="M139 0v936h152v-166q53 84 136 136t173 52q82 0 148.5 -44t101.5 -121q35 -76 35 -226v-567h-146v563q0 45 -2 72t-14 67.5t-35 67.5q-49 59 -127 59q-66 0 -128 -42t-97 -87q-45 -63 -45 -161v-539h-152z" />
<glyph unicode="o" d="M82 461q0 213 131 354t313 141q170 0 293 -131t123 -362q0 -223 -123 -355.5t-297 -132.5q-182 0 -311 138.5t-129 347.5zM238 473q0 -166 84 -268.5t200 -102.5q111 0 192 94.5t81 260.5q0 180 -84 277t-195 97q-115 0 -196.5 -97t-81.5 -261z" />
<glyph unicode="p" d="M123 -342v1278h149v-143q47 76 126 119.5t169 43.5q72 0 138.5 -28.5t121 -85t88 -150.5t33.5 -213q0 -125 -34.5 -223t-91 -158.5t-125 -91.5t-142.5 -31q-86 0 -159.5 39t-121.5 109v-465h-151zM272 510q0 -86 1 -122t7.5 -80t18.5 -72q27 -61 85 -95.5t128 -34.5 q31 0 63.5 6.5t73.5 29t72 58.5t52.5 100.5t21.5 148.5q0 96 -22.5 168.5t-53.5 112.5t-72 63.5t-71.5 30.5t-61.5 7q-72 0 -131 -36.5t-86 -100.5q-25 -57 -25 -184z" />
<glyph unicode="q" d="M86 477q0 225 121 354.5t287 129.5q174 0 258 -138q14 -20 14 -24v137h139v-1278h-147v492q-43 -78 -121 -124t-166 -46q-160 0 -272.5 138t-112.5 359zM236 498q0 -186 79.5 -287.5t188.5 -101.5q76 0 140.5 48t88.5 130q20 61 21 170q0 160 -23 223q-29 80 -95.5 120 t-137.5 40q-106 0 -184 -86t-78 -256z" />
<glyph unicode="r" d="M203 -2v938h153l-4 -180q43 96 136.5 149t199.5 53q152 0 250 -102l-68 -141q-10 8 -21 25.5t-13 21.5q-55 70 -156 69q-162 0 -262 -157q-31 -47 -46.5 -90t-17.5 -67.5t-2 -61.5v-457h-149z" />
<glyph unicode="s" d="M117 127l84 147q10 -4 9 -19t7 -22q20 -27 52 -51t99.5 -52t141.5 -28q100 0 170 42t70 106q0 76 -95 121q-39 18 -133 46.5t-116 37.5q-29 10 -45.5 17t-56.5 29.5t-63.5 45t-44 63.5t-20.5 86q0 109 100.5 185.5t260.5 76.5q215 0 348 -147l-86 -129q-10 2 -10.5 16.5 t-4.5 20.5q-37 47 -104.5 87t-155.5 40q-82 0 -139 -36t-57 -91q0 -70 92 -113q37 -18 161 -54t183 -69q137 -78 137 -213q0 -115 -104.5 -202.5t-284.5 -87.5q-235 0 -395 147z" />
<glyph unicode="t" d="M143 815l2 121h224l16 250l162 26q2 -12 1 -18t-6 -17.5t-7 -19.5l-25 -221h307v-121h-307q-18 -182 -18 -366q0 -135 6 -181q10 -78 54 -113.5t103 -35.5q94 0 209 84l45 -117q-141 -104 -299 -104q-141 0 -213 100q-25 35 -38 84t-15 82t-2 88q0 240 20 479h-219z" />
<glyph unicode="u" d="M127 414l2 522h147v-522q0 -137 35 -203q27 -53 75 -84t103 -31q66 0 124.5 40t91.5 100q37 68 36 184v516h150v-852q0 -51 10 -84h-156q-4 29 -4 72l2 71q-45 -78 -122.5 -122t-165.5 -44q-92 0 -171 50.5t-120 140.5q-37 84 -37 246z" />
<glyph unicode="v" d="M82 936h176q2 -8 -2 -21.5t-4 -17.5q0 -6 2 -12l270 -684l152 348q96 225 127 387h133q-39 -170 -141 -410l-228 -532h-114z" />
<glyph unicode="w" d="M33 936h149q4 -14 -4 -39q-6 -18 -2 -39l137 -674l160 664h90l199 -662q57 385 74 523q13 110 13 189q0 20 -1 38h137q-61 -473 -156 -938h-139l-172 606l-164 -606h-133z" />
<glyph unicode="x" d="M96 0l330 475l-324 461h162l244 -346l233 346h152l-303 -455l344 -481h-168l-258 365l-244 -365h-168z" />
<glyph unicode="y" d="M45 -276l78 131q6 -6 10 -19.5t6 -13.5q4 -8 14.5 -19.5t37 -25t57.5 -13.5q74 0 131 62q33 35 65 108l29 70l-379 932h182q2 -10 -3 -24.5t-5 -20.5t4 -17l275 -688l178 502q51 145 70 248h153q-33 -109 -92 -270l-293 -772q-37 -100 -80 -148q-90 -102 -235 -102 q-121 0 -203 80z" />
<glyph unicode="z" d="M102 -2v100l580 709h-537v129h727v-100l-569 -711h555q14 0 31.5 7t32.5 5v-139h-820z" />
<glyph unicode="{" d="M109 467v115h38q94 0 138 45q53 57 53 174q0 25 -2 73t-2 74q0 182 100 275q29 25 62.5 42t67.5 24t71 11.5t71 4.5h68h62v-117h-70q-47 0 -82 1t-67.5 -5t-57.5 -23q-82 -51 -82 -190q0 -25 2 -72t2 -72q0 -98 -30 -163q-47 -96 -148 -140q174 -59 174 -317 q0 -33 -3 -89.5t-3 -82.5q0 -154 84 -211q18 -14 42 -21.5t48.5 -9.5t53 -3t59.5 -1h76v-115h-74h-74q-35 0 -68.5 3.5t-63.5 8.5t-59.5 18t-54.5 32q-115 88 -114 297q0 43 4 109.5t4 95.5q0 135 -53 188q-43 41 -131 41h-41z" />
<glyph unicode="|" d="M444 -309v1644h138v-1644h-138z" />
<glyph unicode="}" d="M188 1188v117h64h66q34 0 71 -4.5t71 -11.5t68.5 -24.5t61.5 -41.5q102 -92 102 -275q0 -27 -3 -75t-3 -72q0 -117 53 -174q45 -45 138 -45h41v-115h-44q-88 0 -129 -41q-53 -53 -53 -188q0 -29 3 -95.5t3 -109.5q0 -209 -112 -297q-27 -18 -56.5 -31.5t-59.5 -18.5 t-63.5 -8.5t-68.5 -3.5h-74h-74v115h76q31 0 59.5 1t53 3t48.5 9.5t44 21.5q84 57 84 211q0 27 -3 83t-3 89q0 258 172 317q-98 43 -146 140q-33 66 -32 163q0 25 3 72t3 72q0 139 -82 190q-27 16 -58.5 22.5t-66.5 5.5t-82 -1h-72z" />
<glyph unicode="~" d="M84 768q49 80 124 131t159 51q57 0 107 -23.5t81 -52t72 -53t80 -24.5q45 0 83.5 32.5t90.5 100.5l94 -78q-51 -76 -125 -132t-160 -56q-55 0 -104 25.5t-78 56t-69 56t-83 25.5q-92 0 -170 -127z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa2;" d="M98 559q0 207 126 343t331 147l29 229l137 -14q2 -12 -7 -27.5t-12 -30.5l-20 -168q160 -31 242 -157l-90 -117q-8 6 -9 20q0 25 -8 33q-57 70 -151 98l-95 -716q156 0 269 114l73 -100q-133 -145 -344 -145h-16l-31 -230l-116 15l28 231q-154 43 -245 171t-91 304z M244 578q0 -131 56 -225.5t151 -131.5l88 709q-129 -8 -212 -102t-83 -250z" />
<glyph unicode="&#xa3;" d="M80 100q59 27 77.5 37t38 26.5t35.5 41.5q72 111 72 250q0 76 -31 202h-135v117h107q-14 74 -15 131q0 166 105.5 268.5t255.5 102.5q152 0 266 -105l-90 -112q-10 6 -16.5 21.5t-12.5 19.5q-6 8 -22.5 20.5t-53 25.5t-75.5 13q-90 0 -154.5 -65.5t-64.5 -186.5 q0 -55 16 -133h205v-117h-176q27 -119 26 -198q0 -154 -73 -275q27 4 55 4q70 0 175 -42t163 -42q84 0 151 58l54 -107q-106 -86 -213 -86q-63 0 -176 46t-189 46q-106 0 -252 -77z" />
<glyph unicode="&#xa5;" d="M74 1278h159l297 -535l273 533h151l-356 -672v-43h274v-117h-274v-129h274v-114h-274v-201h-139v201h-287v114h287v129h-287v117h287v43z" />
<glyph unicode="&#xa9;" d="M29 561q0 219 145 371.5t350 152.5t350.5 -152.5t145.5 -369.5q0 -219 -146.5 -371.5t-350.5 -152.5t-349 152.5t-145 369.5zM121 561q0 -182 119.5 -308t285.5 -126t286 127t120 309t-119 309t-286 127t-286.5 -127t-119.5 -311zM236 565q0 129 88 216t213 87 q94 0 164.5 -53t91.5 -137l-107 -39q-6 8 -7 23.5t-1 17.5q-4 12 -14.5 29.5t-44 37t-78.5 19.5q-78 0 -134.5 -49t-56.5 -139q0 -92 56.5 -157t136.5 -65q49 0 90 25t63 68l90 -60q-43 -66 -110.5 -102.5t-140.5 -36.5q-125 0 -212 93t-87 222z" />
<glyph unicode="&#xad;" d="M145 575v138h738v-138h-738z" />
<glyph unicode="&#xae;" d="M29 561q0 219 145 371.5t350 152.5t350.5 -152.5t145.5 -369.5q0 -219 -146.5 -371.5t-350.5 -152.5t-349 152.5t-145 369.5zM121 561q0 -182 119.5 -308t285.5 -126t286 127t120 309t-119 309t-286 127t-286.5 -127t-119.5 -311zM317 272v598h193q94 0 141 -20 q51 -23 79 -64t28 -90q0 -55 -33 -99t-86 -58l131 -256l-96 -15l-127 256h-135v-252h-95zM412 606h106q74 0 107 21q39 25 39 69q0 47 -46 72q-33 18 -106 18h-100v-180z" />
<glyph unicode="&#xb4;" d="M418 1130l180 302l129 -86l-207 -277z" />
<glyph unicode="&#x2000;" horiz-adv-x="714" />
<glyph unicode="&#x2001;" horiz-adv-x="1431" />
<glyph unicode="&#x2002;" horiz-adv-x="714" />
<glyph unicode="&#x2003;" horiz-adv-x="1431" />
<glyph unicode="&#x2004;" horiz-adv-x="477" />
<glyph unicode="&#x2005;" horiz-adv-x="356" />
<glyph unicode="&#x2006;" horiz-adv-x="237" />
<glyph unicode="&#x2007;" horiz-adv-x="237" />
<glyph unicode="&#x2008;" horiz-adv-x="178" />
<glyph unicode="&#x2009;" horiz-adv-x="284" />
<glyph unicode="&#x200a;" horiz-adv-x="77" />
<glyph unicode="&#x2010;" d="M145 575v138h738v-138h-738z" />
<glyph unicode="&#x2011;" d="M145 575v138h738v-138h-738z" />
<glyph unicode="&#x2012;" d="M145 575v138h738v-138h-738z" />
<glyph unicode="&#x2013;" d="M145 575v138h738v-138h-738z" />
<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M145 575v138h1762v-138h-1762z" />
<glyph unicode="&#x2018;" d="M373 922q0 164 217 385l72 -64q-57 -51 -103 -127q-31 -49 -31 -84q0 -41 47 -74q57 -37 58 -90q0 -47 -34 -81.5t-83 -34.5q-57 0 -100 47t-43 123z" />
<glyph unicode="&#x2019;" d="M338 813q57 53 102 127q31 49 31 86q0 41 -47 72q-57 39 -57 92q0 47 33.5 82t82.5 35q57 0 100.5 -47.5t43.5 -122.5q0 -164 -219 -385z" />
<glyph unicode="&#x201c;" d="M162 922q0 164 217 385l70 -64q-57 -51 -103 -127q-31 -49 -31 -84q0 -41 50 -74q57 -37 57 -90q0 -47 -35 -81.5t-84 -34.5q-57 0 -99 47t-42 123zM586 922q0 164 217 385l69 -64q-57 -51 -102 -127q-31 -49 -31 -84q0 -41 49 -74q57 -37 58 -90q0 -47 -35 -81.5 t-84 -34.5q-57 0 -99 47t-42 123z" />
<glyph unicode="&#x201d;" d="M125 813q59 53 104 127q29 49 29 86q0 41 -47 72q-57 39 -57 92q0 47 33.5 82t84.5 35q57 0 99.5 -47.5t42.5 -122.5q0 -164 -217 -385zM549 813q59 53 104 127q29 49 29 86q0 41 -47 72q-57 39 -57 92q0 47 33.5 82t84.5 35q57 0 99.5 -47.5t42.5 -122.5 q0 -164 -217 -385z" />
<glyph unicode="&#x2022;" d="M350 607.5q0 70.5 51.5 120.5t123 50t122.5 -50t51 -120.5t-51 -121t-122.5 -50.5t-123 50.5t-51.5 121z" />
<glyph unicode="&#x2026;" d="M14 94q0 49 35 84t86 35t86 -35t35 -84t-35 -83t-86 -34t-86 34t-35 83zM367 94q0 49 35.5 84t86 35t86 -35t35.5 -84t-35.5 -83t-86 -34t-86 34t-35.5 83zM721 94q0 49 36 84t86 35t85 -35t35 -84t-35 -83t-85 -34t-86 34t-36 83z" />
<glyph unicode="&#x202f;" horiz-adv-x="284" />
<glyph unicode="&#x205f;" horiz-adv-x="356" />
<glyph unicode="&#x20ac;" d="M68 446l26 119h82v33q0 70 4 131h-112l26 119h105q25 117 73 201q72 127 180.5 182t221.5 55q168 0 276 -110l-51 -140q-8 6 -10 20.5t-6 20.5q-8 10 -26.5 26.5t-74 41t-116.5 24.5q-104 0 -196.5 -68.5t-133.5 -211.5q-6 -20 -10 -41h505l-45 -119h-479q-4 -55 -4 -121 v-43h422l-47 -119h-363q23 -125 84 -208q100 -137 271 -138q127 0 219 84l59 -102q-121 -104 -286 -105q-55 0 -108.5 11.5t-115 45.5t-110.5 84t-88 135t-54 193h-118z" />
<glyph unicode="&#x2122;" d="M37 1219v81h452v-81h-184v-564h-92v564h-176zM549 655v645h72l147 -296l76 147l78 149h67v-645h-86v441l-63 -113l-60 -109l-32 3l-113 219v-441h-86z" />
<glyph unicode="&#xe000;" horiz-adv-x="935" d="M0 935h935v-935h-935v935z" />
<glyph unicode="&#xfb01;" horiz-adv-x="2048" d="M1229 0v119h239v698h-227v119h375v-817h219v-119h-606zM1440 1238q0 44 30.5 74.5t74.5 30.5t75 -30.5t31 -74.5t-31 -74.5t-75 -30.5t-74.5 30.5t-30.5 74.5zM129 764v117h203v92q0 156 51 237q49 80 134 122t185 42q180 0 287 -129l-67 -135q-4 0 -9.5 4t-7.5 12 q0 18 -4 25q-33 47 -87 76.5t-118 29.5q-131 0 -188 -102q-35 -61 -35 -203v-71h307v-117h-307v-764h-141v764h-203z" />
<glyph unicode="&#xfb02;" horiz-adv-x="2048" d="M1186 0v119h276v1124h-264v119h414v-1243h274v-119h-700zM129 764v117h203v92q0 156 51 237q49 80 134 122t185 42q180 0 287 -129l-67 -135q-4 0 -9.5 4t-7.5 12q0 18 -4 25q-33 47 -87 76.5t-118 29.5q-131 0 -188 -102q-35 -61 -35 -203v-71h307v-117h-307v-764h-141 v764h-203z" />
<glyph unicode="&#xfb03;" horiz-adv-x="3072" d="M2253 0v119h239v698h-227v119h375v-817h219v-119h-606zM2464 1238q0 44 30.5 74.5t74.5 30.5t75 -30.5t31 -74.5t-31 -74.5t-75 -30.5t-74.5 30.5t-30.5 74.5zM1153 764v117h203v92q0 156 51 237q49 80 134 122t185 42q180 0 287 -129l-67 -135q-4 0 -9.5 4t-7.5 12 q0 18 -4 25q-33 47 -87 76.5t-118 29.5q-131 0 -188 -102q-35 -61 -35 -203v-71h307v-117h-307v-764h-141v764h-203zM129 764v117h203v92q0 156 51 237q49 80 134 122t185 42q180 0 287 -129l-67 -135q-4 0 -9.5 4t-7.5 12q0 18 -4 25q-33 47 -87 76.5t-118 29.5 q-131 0 -188 -102q-35 -61 -35 -203v-71h307v-117h-307v-764h-141v764h-203z" />
<glyph unicode="&#xfb04;" horiz-adv-x="3072" d="M2210 0v119h276v1124h-264v119h414v-1243h274v-119h-700zM1153 764v117h203v92q0 156 51 237q49 80 134 122t185 42q180 0 287 -129l-67 -135q-4 0 -9.5 4t-7.5 12q0 18 -4 25q-33 47 -87 76.5t-118 29.5q-131 0 -188 -102q-35 -61 -35 -203v-71h307v-117h-307v-764h-141 v764h-203zM129 764v117h203v92q0 156 51 237q49 80 134 122t185 42q180 0 287 -129l-67 -135q-4 0 -9.5 4t-7.5 12q0 18 -4 25q-33 47 -87 76.5t-118 29.5q-131 0 -188 -102q-35 -61 -35 -203v-71h307v-117h-307v-764h-141v764h-203z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Binary file not shown.

14
fonts/liberation-mono.css Normal file
View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'LiberationMonoRegular';
src: url('liberation-mono/liberation-mono-webfont.eot');
src: url('liberation-mono/liberation-mono-webfont.eot?#iefix') format('embedded-opentype'),
url('liberation-mono/liberation-mono-webfont.woff') format('woff'),
url('liberation-mono/liberation-mono-webfont.ttf') format('truetype'),
url('liberation-mono/liberation-mono-webfont.svg#LiberationMonoRegular') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-liberation-mono * {
font-family: Liberation Mono, 'LiberationMonoRegular', 'Courier New', monospace !important;
}

Binary file not shown.

View File

@ -0,0 +1,153 @@
<?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>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : Digitized data 2007 Ascender Corporation All rights reserved
Designer : Steve Matteson
Foundry : Ascender Corporation
Foundry URL : httpwwwascendercorpcom
</metadata>
<defs>
<font id="webfontwflF1Ngq" horiz-adv-x="1228" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M514 0v201h195v-201h-195zM516 1348h197l-25 -951h-147z" />
<glyph unicode="&#x22;" d="M276 1485h226l-43 -639h-142zM725 1485h225l-43 -639h-141z" />
<glyph unicode="#" d="M53 408v108h226l67 318h-242v106h265l88 410h110l-88 -410h363l88 410h110l-88 -410h211v-106h-233l-68 -318h260v-108h-282l-88 -408h-111l86 408h-362l-84 -408h-111l86 408h-203zM389 516h363l67 318h-360z" />
<glyph unicode="$" d="M66 379l170 37q10 -45 34 -99q23 -49 60 -79q39 -33 96 -56q55 -23 131 -24v489q-2 0 -7 1t-7 3q-6 0 -11 2l-2 1l-2 1q-66 16 -98 27q-57 18 -92 33q-45 18 -82 47q-43 31 -68 65q-29 39 -43 84q-16 53 -16 113q0 80 33 141q31 57 90 99q55 39 135 59q72 18 170 23v131 h129v-131q100 -2 174 -25q63 -18 123 -64q53 -41 84 -98q29 -53 51 -135l-174 -33q-8 43 -29 88q-16 37 -51 68q-33 31 -76 45q-49 18 -102 20v-426q18 -4 57 -14t58 -14q53 -14 108 -37q47 -18 97 -51q37 -25 75 -70q33 -39 51.5 -94t18.5 -125q0 -72 -28.5 -139.5 t-86.5 -112.5q-63 -49 -143 -76q-82 -27 -207 -33v-161h-129v161q-213 6 -336 99q-120 90 -155 260zM301 1018q0 -55 21 -90q16 -31 55 -58q31 -23 80 -39l100 -28v411q-70 -2 -119 -18q-49 -15 -79.5 -43t-43.5 -61q-14 -39 -14 -74zM686 156q68 4 119 18q52 15 92 43 q35 25 59 70q23 41 23 96q0 65 -25 104q-27 43 -63 66q-47 29 -94 43l-111 31v-471z" />
<glyph unicode="%" d="M0 1024q0 96 23 164q22 65 61 104q37 37 92 53.5t115 16.5q55 0 110 -16q53 -14 91 -54q37 -37 59 -104.5t22 -163.5q0 -92 -22 -160q-22 -65 -62 -104q-39 -39 -90 -57.5t-112.5 -18.5t-112.5 18q-53 18 -90 56q-39 39 -61.5 106.5t-22.5 159.5zM76 0l932 1354h147 l-934 -1354h-145zM147 1024q0 -68 8.5 -106.5t28.5 -69.5q18 -27 45 -39q29 -12 60 -12q33 0 57 12q27 12 43 39q20 31 28.5 69.5t8.5 106.5q0 72 -8 111q-10 47 -27 71q-18 28 -43 37q-27 10 -57 10q-37 0 -64 -12q-29 -12 -45 -37q-16 -27 -26 -69q-9 -39 -9 -111z M655 330q0 94 23 162q22 65 61 104q37 37 92.5 53.5t114.5 16.5q55 0 111 -17q53 -14 90 -53q40 -40 61 -104q23 -68 23 -162t-23 -162q-22 -65 -61 -105q-39 -39 -92 -57q-51 -18 -113 -18q-57 0 -110.5 18.5t-92.5 56.5q-40 40 -61 105q-23 68 -23 162zM803 330 q0 -61 10 -109q10 -43 27 -69q18 -27 45 -39q29 -12 59 -13q35 0 59.5 12.5t43.5 39.5q16 27 26 69q10 47 10 108.5t-10 108.5t-26 72q-18 28 -43 37q-27 10 -58 10q-39 0 -61 -10q-27 -12 -45 -39q-20 -31 -28.5 -69.5t-8.5 -108.5z" />
<glyph unicode="&#x26;" d="M43 358q0 72 23 140q20 61 61 114q40 52 92 93q51 39 117 71q-16 29 -29 64q-23 63 -24 69q-12 49 -17 74q-6 37 -6 76q0 63 21 117q20 51 65 94q45 41 111 63q74 25 153 25q70 0 129 -19q61 -20 103 -51q39 -31 65 -84q25 -49 25 -114q0 -68 -35 -125q-33 -55 -90 -97 q-63 -47 -131 -77l-152 -68q20 -37 64 -105q41 -66 63.5 -98.5t71.5 -93.5q37 -46 80 -92q37 76 71 184q33 102 54 221l143 -43q-25 -141 -67 -254q-37 -98 -95 -209q43 -55 92.5 -79.5t88.5 -24.5q18 0 51 4q23 2 45 12v-135q-16 -8 -53 -16q-28 -6 -62 -6q-37 0 -78 10 q-35 8 -71 29q-45 25 -64 41q-28 25 -49 49q-31 -27 -64 -49q-45 -31 -79 -45q-45 -18 -95 -31q-52 -12 -110 -12q-106 0 -189 28q-76 27 -129 80q-49 49 -75 121q-25 67 -25 149zM211 362q0 -49 16 -98q14 -45 47 -80q31 -35 82 -53q55 -20 113 -20q33 0 74 10q33 8 65 24 q35 18 56 33q16 12 43 39q-102 115 -170 213q-102 145 -148 227q-84 -45 -131 -121t-47 -174zM408 1057q0 -65 18 -123q14 -45 43 -103l121 54q49 23 98 53q41 27 68 66q25 37 24 81q0 34 -12 62q-12 29 -35 47q-20 18 -53 31q-31 12 -72 12q-37 0 -80 -14q-33 -10 -63 -35 q-23 -18 -41 -58q-16 -36 -16 -73z" />
<glyph unicode="'" d="M502 1485h223l-41 -639h-141z" />
<glyph unicode="(" d="M342 532q0 147 20 269q18 111 68 239q43 114 111 222q74 117 159 223h191q-96 -119 -164 -232q-74 -123 -113 -227q-45 -119 -65 -238q-20 -117 -21 -258q0 -143 21 -260q20 -119 65 -237q39 -104 113 -228q68 -113 164 -231h-191q-94 117 -159 223q-68 109 -111 226 q-49 129 -68 239q-20 120 -20 270z" />
<glyph unicode=")" d="M336 -426q104 127 166 231q74 123 112 228q45 119 66 237q20 117 20 260q0 141 -20 258q-20 119 -66 238q-39 104 -112 227q-61 104 -166 232h192q86 -106 160 -223q68 -108 111 -222q45 -119 65.5 -239.5t20.5 -268.5q0 -150 -20.5 -270.5t-65.5 -238.5 q-43 -117 -111 -226q-66 -106 -160 -223h-192z" />
<glyph unicode="*" d="M248 1159l45 133l266 -106l-10 297h135l-12 -295l264 102l45 -131l-283 -74l185 -249l-119 -72l-150 258l-155 -256l-119 72l188 247z" />
<glyph unicode="+" d="M117 608v146h424v428h145v-428h424v-146h-424v-428h-145v428h-424z" />
<glyph unicode="," d="M258 -362l170 661h264l-309 -661h-125z" />
<glyph unicode="-" d="M334 465v160h561v-160h-561z" />
<glyph unicode="." d="M496 0v299h235v-299h-235z" />
<glyph unicode="/" d="M115 -20l821 1505h176l-815 -1505h-182z" />
<glyph unicode="0" d="M125 676q0 203 37 338q35 131 102 213q63 78 157.5 110.5t194.5 32.5q96 0 191 -33q89 -31 154 -110q70 -86 104 -213q39 -143 39 -338q0 -199 -39 -328q-41 -137 -104.5 -215t-157.5 -117q-90 -37 -192.5 -36.5t-190.5 36.5q-96 39 -156 117q-68 86 -102 213 q-37 133 -37 330zM305 676q0 -160 21 -260q20 -102 61 -168t96 -92q61 -29 129 -29t129 29q55 27 96.5 92t61.5 168q20 100 21 260q0 162 -21 264q-23 115 -57 170q-39 63 -97 88q-59 27 -129 27q-78 0 -133 -27q-59 -29 -98 -90q-37 -59 -59 -168q-21 -100 -21 -264z" />
<glyph unicode="1" d="M147 973v147q82 0 146 17q82 20 133 47q61 31 110.5 73.5t73.5 92.5h166v-1205h354v-145h-972v145h438v1020q-18 -39 -67.5 -75.5t-110.5 -61.5q-66 -27 -133 -41q-66 -14 -138 -14z" />
<glyph unicode="2" d="M143 0v117q39 88 117 180q59 70 154 154q106 94 164 139q78 59 149 129q63 61 109 131q41 63 41 141q0 59 -19 103q-20 47 -55 73q-41 31 -84 41q-57 14 -108.5 14.5t-100.5 -16.5q-51 -16 -82 -45q-34 -31 -55 -74q-25 -49 -31 -104l-182 18q8 72 41 144q31 68 86 117 q59 53 137 79q82 29 186 29q106 0 189 -24q88 -27 143 -70t88 -117q33 -72 33 -158q0 -94 -43 -174q-45 -82 -111 -151q-78 -82 -149 -137l-162 -129q-77 -65 -141 -129q-66 -66 -97 -136h723v-145h-940z" />
<glyph unicode="3" d="M127 362l186 17q10 -57 31 -102.5t57 -77.5q35 -33 93 -52q55 -18 127 -18q137 0 213 64q78 66 77 184q0 66 -34 112q-31 43 -86 72q-45 25 -111 37q-51 10 -113 10h-100v158h96q51 0 107 12q57 12 100 39t76 72q29 41 28 108q0 109 -65 166q-70 59 -199 60 q-119 0 -192 -62q-72 -59 -84 -172l-182 15q12 96 51 161q41 68 102 115q63 47 139 68q84 23 168 22q115 0 205 -29q82 -27 137.5 -75.5t79.5 -112.5q27 -70 27 -137q0 -53 -19 -107q-18 -51 -55 -94q-41 -47 -92 -76q-57 -33 -129 -47v-4q84 -10 143 -39q61 -31 105 -74 q41 -41 63.5 -96t22.5 -108q0 -86 -33 -164q-31 -74 -92 -123q-63 -51 -149.5 -77.5t-204.5 -26.5q-133 0 -220 32q-89 34 -147 86q-59 53 -88 123q-31 75 -39 141z" />
<glyph unicode="4" d="M102 319v140l635 891h201v-889h186v-142h-186v-319h-180v319h-656zM256 461h502v692z" />
<glyph unicode="5" d="M127 315l182 21q14 -45 33 -78q20 -37 53 -65q29 -25 86 -48q49 -18 121 -18q66 0 127 23q58 22 98 61q43 43 63.5 98.5t20.5 130.5q0 61 -20 111q-23 57 -60 90q-41 39 -96 59q-57 23 -129 23q-49 0 -82 -8q-49 -12 -71 -23q-27 -12 -58 -33q-37 -25 -51 -38h-174 l45 729h803v-146h-635l-31 -426q45 35 121 64q68 27 170 26q106 0 191 -30q80 -29 143 -90q59 -55 90 -134q33 -82 33 -170q0 -94 -33 -186q-31 -88 -94 -147q-66 -63 -158 -97q-94 -35 -217 -34q-102 0 -192 26q-78 23 -140 72q-55 43 -90 106q-35 61 -49 131z" />
<glyph unicode="6" d="M152 641q0 174 34.5 313.5t98.5 229.5q63 92 159 139q94 47 211 47q76 0 136 -14q61 -14 114 -49q49 -33 90 -88q40 -55 62 -136l-172 -30q-27 90 -90.5 131t-141.5 41q-72 0 -135 -35q-53 -31 -100 -103q-45 -70 -66 -165q-23 -102 -22 -228q49 92 139 139.5t203 47.5 q94 0 174 -31q82 -31 135 -88q55 -59 86 -137q29 -74 29 -179q0 -106 -29 -186q-31 -88 -88 -147q-66 -68 -141 -99q-88 -35 -197 -34q-121 0 -215 47q-90 45 -154 133q-59 82 -90 207q-30 122 -30 274zM348 481q0 -76 21 -137q23 -66 57 -113q37 -49 90 -77.5t119 -28.5 q61 0 117 22q47 20 88 64q37 40 55 98.5t18 128.5q0 68 -18 123q-20 59 -53 96q-37 39 -90 62q-55 23 -123 22q-45 0 -99 -16q-51 -16 -90 -49q-47 -41 -67 -80q-25 -49 -25 -115z" />
<glyph unicode="7" d="M158 1204v146h911v-140q-106 -154 -182 -284q-82 -141 -149.5 -301t-102.5 -310q-39 -166 -39 -315h-188q0 156 41 315q41 164 106 312q68 152 156 299q98 164 184 278h-737z" />
<glyph unicode="8" d="M133 377q0 74 23 127q25 59 63 100q39 43 90 68q51 27 105 35v4q-61 16 -105 45q-47 33 -78 73q-37 51 -49 93q-16 53 -16 102q0 68 29 131q27 59 84 111q53 47 139 75.5t192 28.5q109 0 199 -29q84 -27 141 -77q55 -49 82 -110.5t27 -131.5q0 -49 -17 -102 q-14 -47 -47 -93q-27 -37 -77 -71q-45 -31 -109 -43v-4q59 -8 112.5 -37t90.5 -68q40 -43 61 -98q20 -53 21 -127q0 -82 -29 -158q-27 -70 -86 -127q-53 -51 -150 -84q-89 -31 -215 -30q-127 0 -215 30q-90 31 -149 84q-61 55 -88 127q-29 76 -29 156zM319 391 q0 -57 17 -110q15 -49 49 -86q35 -39 92 -60q55 -20 139 -20t138 20q57 23 90 58q33 37 49 90q14 49 14 112q0 49 -14 90q-16 47 -47 80q-33 35 -92 58q-55 20 -144 20q-82 0 -135 -20q-55 -23 -90 -60q-35 -39 -49 -80q-17 -49 -17 -92zM350 1012q0 -45 10 -78 q12 -41 41 -76q31 -37 80 -57q55 -23 131 -23q78 0 138 25q47 18 77 57q27 33 37 76q8 35 8 76t-14 88q-12 39 -45 71q-27 27 -80 48q-49 18 -123 18q-70 0 -118 -18q-55 -20 -82 -48q-29 -29 -45 -71q-15 -37 -15 -88z" />
<glyph unicode="9" d="M141 911q0 102 31 189q29 80 92 143q59 59 148 94q84 33 198 33q237 0 357 -166q121 -168 120 -502q0 -172 -34 -311q-31 -127 -103 -227q-63 -90 -159 -137q-98 -47 -213 -47q-78 0 -148 16q-55 14 -115 51q-47 31 -88 92q-35 53 -57 135l172 27q27 -88 88 -133 q57 -43 150 -43q72 0 135 35q57 33 102 98q39 57 66 166q27 106 26 225q-23 -49 -57.5 -84t-83.5 -61q-51 -27 -100 -39q-61 -14 -109 -14q-94 0 -174 34q-76 33 -131 95q-53 59 -84 145q-29 80 -29 186zM324 911q0 -65 18 -123q20 -61 51 -102q33 -41 88 -68 q51 -25 121 -24q55 0 103 16q49 16 92 52q37 29 67 83q27 47 27 117q0 76 -19 139q-18 66 -55 115q-33 45 -90 78q-52 31 -123 31q-61 0 -117 -23q-49 -20 -88 -65t-55 -99q-20 -66 -20 -127z" />
<glyph unicode=":" d="M496 0v299h235v-299h-235zM496 782v299h235v-299h-235z" />
<glyph unicode=";" d="M352 -362l168 661h266l-311 -661h-123zM496 782v299h235v-299h-235z" />
<glyph unicode="&#x37e;" d="M352 -362l168 661h266l-311 -661h-123zM496 782v299h235v-299h-235z" />
<glyph unicode="&#x3c;" d="M117 571v205l993 418v-154l-856 -366l856 -367v-153z" />
<glyph unicode="=" d="M117 344v148h993v-148h-993zM117 856v148h993v-148h-993z" />
<glyph unicode="&#x3e;" d="M117 154v153l858 367l-858 366v154l993 -418v-205z" />
<glyph unicode="?" d="M94 961q12 89 49 165q35 74 101 129q63 53 149 84q90 31 201 31q108 0 197 -24q88 -25 151 -70q61 -43 96 -115q35 -70 35 -160q0 -68 -18 -120t-49 -93q-29 -37 -72 -73q-27 -23 -80 -64q-23 -16 -44.5 -32.5l-35.5 -26.5q-47 -35 -72 -64q-35 -39 -51 -75 q-20 -47 -20 -97h-174q4 70 20 119q16 47 51 92q29 37 70 72q27 23 80 63l78 58q33 25 67 63q31 35 49 76q18 43 19 94q0 57 -21 99q-23 43 -59 69q-43 29 -92 43q-59 16 -123 17q-61 0 -123 -21q-59 -20 -96 -53q-45 -43 -68 -86q-25 -49 -30 -113zM449 0v201h194v-201 h-194z" />
<glyph unicode="@" d="M43 514q0 209 43 387t123 307t196.5 203t266.5 74q129 0 229 -60q96 -57 162 -159q63 -100 94 -232q33 -141 33 -278q0 -150 -21 -264q-23 -125 -59 -205q-41 -88 -96.5 -135.5t-128.5 -47.5q-35 0 -58 9q-29 10 -45 26q-20 20 -30.5 47t-10.5 74v8v13q0 2 1 5t1 5v8h-6 q-8 -20 -39 -74q-20 -37 -51 -63q-31 -28 -67 -43q-35 -14 -78 -15q-66 0 -107 33t-69 86q-23 43 -37 123q-12 72 -13 143q0 76 13 150q14 84 33 143q23 70 55 127q35 61 72 101q39 43 90 67q49 25 104 25q37 0 74 -15q33 -12 53 -36q16 -18 35 -56q10 -23 22 -67h7l30 151 h117l-98 -508l-17 -82q-8 -53 -12 -77.5t-8 -65.5t-4 -51q0 -55 14 -71.5t35 -16.5q39 0 71.5 39t57.5 112q23 66 35 174q12 101 12 222q0 141 -25 239q-29 113 -77 197q-47 80 -125 131q-70 47 -170 47q-121 0 -213 -68q-96 -70 -157.5 -182t-96.5 -270q-33 -152 -33 -334 q0 -160 29 -276q31 -126 86 -215q55 -88 137 -140q80 -49 182 -49q49 0 111 14q53 12 94 33q53 27 86 49q35 25 78 64l71 -88q-49 -43 -92 -72q-39 -27 -104 -59q-55 -29 -119 -43q-59 -14 -135 -15q-127 0 -229 56q-98 53 -172 161q-72 106 -111 250t-39 330zM412 492 q0 -61 6 -112.5t18.5 -88.5t34.5 -60q20 -20 55 -20q39 0 74 27q37 29 66 77q31 55 51 121q27 86 37 160q2 10 6 43q0 8 3 25.5t5 27.5q0 8 1 26.5t3 26.5q2 16 2 39q0 102 -35 160q-35 55 -94 55q-35 0 -67 -22q-37 -27 -60 -59q-18 -29 -45 -89q-18 -43 -33 -106 q-16 -72 -20 -115q-8 -77 -8 -116z" />
<glyph unicode="A" d="M0 0l510 1350h217l502 -1350h-195l-137 383h-563l-137 -383h-197zM385 530h463l-148 424q-8 25 -26 76q-8 20 -13.5 40t-11.5 36q-12 35 -20 61l-13 37q-2 -8 -12 -39l-20 -61l-12.5 -37.5t-10.5 -36.5q-6 -20 -13 -39.5l-13 -36.5z" />
<glyph unicode="B" d="M162 0v1350h411q106 0 209 -21q92 -18 155.5 -57t98.5 -103q33 -59 33 -147q0 -53 -16 -107q-16 -51 -49 -90q-35 -41 -84 -71q-41 -27 -117 -43q84 -8 149 -37q68 -29 111 -72t65.5 -100.5t22.5 -120.5q0 -109 -41 -176q-43 -72 -113 -117q-71 -46 -166 -68 q-90 -20 -196 -20h-473zM352 154h266q84 0 136 10q61 12 108 40.5t71.5 74t24.5 118.5q0 63 -24.5 106.5t-71.5 71.5q-53 31 -112 43q-66 12 -146 13h-252v-477zM352 780h226q84 0 139 15q49 12 92 45q39 29 53 67q16 43 17 90q0 109 -76 154t-228 45h-223v-416z" />
<glyph unicode="C" d="M113 682q0 156 32 293q31 127 99 217q66 88 166 133q98 45 239 45q102 0 176 -26.5t133 -75.5q49 -41 93 -107q37 -55 63 -127l-168 -63q-14 45 -40.5 90t-61.5 78q-37 34 -86 55q-47 20 -109 20q-86 0 -151.5 -34.5t-104.5 -100.5q-41 -70 -59 -168q-20 -109 -21 -229 q0 -137 21 -233q23 -109 61 -173q41 -68 109 -106q61 -35 158 -35q63 0 112 25q57 29 90 61q47 47 70 90q29 55 49 107l160 -66q-23 -57 -70 -137q-39 -66 -98.5 -119t-136.5 -84q-82 -33 -179 -32q-137 0 -243 51q-102 49 -170 141q-66 90 -101 221q-32 125 -32 289z" />
<glyph unicode="D" d="M162 0v1350h311q160 0 279 -39q123 -41 204 -119q84 -80 127 -207q41 -121 41 -297q0 -172 -39 -297q-40 -129 -116 -215q-80 -90 -187 -131q-117 -45 -250 -45h-370zM352 156h162q211 0 315 133q104 132 105 399q0 133 -29 232q-27 94 -86 155q-61 63 -141 90 q-90 29 -205 29h-121v-1038z" />
<glyph unicode="E" d="M162 0v1350h919v-156h-729v-424h670v-154h-670v-460h770v-156h-960z" />
<glyph unicode="F" d="M195 0v1350h890v-156h-700v-496h676v-157h-676v-541h-190z" />
<glyph unicode="G" d="M113 682q0 166 30 295q31 127 96.5 215t166.5 133q98 45 235 45q92 0 176 -27q70 -23 131 -69q59 -45 94 -105q35 -57 62 -131l-172 -55q-37 109 -107 170q-72 61 -182 61q-86 0 -151 -34q-61 -33 -103 -103q-39 -66 -57 -166q-18 -98 -19 -229q0 -268 86 -407.5 t256 -139.5q51 0 90 8q43 8 74 21q31 10 58 24q35 16 38 21v336h-292v160h479v-572q-12 -8 -84 -51q-43 -27 -107 -49q-59 -23 -125 -37q-72 -16 -147 -16q-133 0 -233 53q-98 53 -164 145q-66 94 -97 221q-32 138 -32 283z" />
<glyph unicode="H" d="M162 0v1350h190v-568h522v568h193v-1350h-193v623h-522v-623h-190z" />
<glyph unicode="I" d="M203 0v156h315v1038h-315v156h821v-156h-315v-1038h315v-156h-821z" />
<glyph unicode="J" d="M176 350l186 31q9 -65 31 -111q18 -39 51 -75q25 -29 66 -45q35 -14 78 -15q102 0 155.5 72t53.5 209v778h-312v156h500v-930q0 -100 -24 -182q-23 -74 -76 -138q-49 -59 -125 -90q-74 -31 -174 -30q-170 0 -273 90q-104 90 -137 280z" />
<glyph unicode="K" d="M162 0v1350h190v-674l574 674h225l-506 -574l582 -776h-223l-488 639l-164 -170v-469h-190z" />
<glyph unicode="L" d="M238 0v1350h190v-1194h672v-156h-862z" />
<glyph unicode="M" d="M129 0v1350h238l184 -490q6 -12 20 -61q16 -49 23 -76q8 -29 24 -94l27 90q10 37 23 76q14 49 20 63l186 492h226v-1350h-162v868v105q0 68 2 96q2 35 2 100l-33 -108l-30 -94q-18 -57 -31 -88l-164 -439h-137l-166 439q-8 20 -12 34q-10 33 -15 45l-16 48l-16 49 l-37 114q0 -23 1 -48t1 -52q0 -14 1 -47t1 -51v-103v-868h-160z" />
<glyph unicode="N" d="M162 0v1350h223l526 -1139q-4 29 -8 86q-4 45 -6 88q-2 33 -2 100v865h172v-1350h-231l-521 1130l9 -88q2 -25 6 -81q2 -29 2 -84v-877h-170z" />
<glyph unicode="O" d="M102 682q0 176 33 301t101 215q65 86 159 129q96 43 219 43q246 0 379 -174t133 -514q0 -170 -34 -305q-31 -121 -103 -219q-66 -90 -160 -133q-100 -45 -217 -45q-125 0 -223 47q-92 45 -160 137q-66 90 -96.5 219t-30.5 299zM303 682q0 -272 80 -409.5t231 -137.5 q166 0 238 139q74 141 74 408q0 268 -80 401q-80 131 -232 131q-158 0 -233 -131q-78 -133 -78 -401z" />
<glyph unicode="P" d="M162 0v1350h461q121 0 217 -29q88 -27 155 -84q61 -51 92 -127q31 -74 31 -166q0 -88 -28 -160q-33 -82 -91 -139q-55 -55 -151 -94q-92 -37 -213 -37h-283v-514h-190zM352 666h254q84 0 144 20q57 20 100 59q39 37 57 89q20 57 21 108q0 125 -82 188q-84 66 -248 66 h-246v-530z" />
<glyph unicode="Q" d="M102 682q0 176 33 301t101 215q65 86 159 129q96 43 219 43q246 0 379 -174t133 -514q0 -139 -26 -266q-25 -117 -74 -203q-49 -88 -119 -141q-68 -53 -162 -76q39 -123 109 -182q66 -57 168 -58q18 0 59 4t56 9v-134q-45 -10 -84 -16q-45 -6 -95 -6q-86 0 -149 25 q-57 23 -113 73q-49 45 -84 117q-33 63 -61 156q-117 12 -197 63q-86 55 -139 139q-59 96 -86 215q-27 121 -27 281zM303 682q0 -272 80 -409.5t231 -137.5q166 0 238 139q74 141 74 408q0 268 -80 401q-80 131 -232 131q-158 0 -233 -131q-78 -133 -78 -401z" />
<glyph unicode="R" d="M162 0v1350h481q115 0 211 -27q92 -25 150 -74q57 -47 88 -116q29 -63 28 -156q0 -63 -18 -125q-18 -59 -62 -113q-45 -55 -106.5 -90t-157.5 -51l402 -598h-222l-364 575h-240v-575h-190zM352 725h281q86 0 139 20q63 25 92 54q34 34 49 80q16 49 17 94q0 223 -305 223 h-273v-471z" />
<glyph unicode="S" d="M80 338l184 37q14 -59 35 -101q23 -43 68 -77q39 -31 102 -50q61 -18 145 -18q66 0 134 14q55 12 100 41q43 28 67 74q23 43 23 109q0 76 -31 114q-35 45 -86 72q-49 27 -119 45l-135 35l-35 9t-28.5 8t-36.5 12q-61 18 -98 32q-47 18 -88 47q-45 31 -72 64 q-25 31 -47 88q-16 43 -17 117q0 100 35 164q39 72 101 112q63 43 147 64q82 20 186 20q119 0 199 -20q82 -20 137.5 -61.5t89.5 -102.5q35 -63 56 -139l-189 -33q-12 51 -33 90q-23 41 -57 67q-33 25 -86 41q-45 14 -117 15q-76 0 -135 -17q-47 -12 -86 -45 q-31 -25 -47 -67q-14 -37 -14 -84q0 -63 26 -99q29 -39 72 -61q53 -29 105 -41l131 -35l110 -28q51 -14 106.5 -37t96.5 -49.5t78 -69.5q35 -41 53 -96.5t18 -126.5q0 -88 -30 -158q-31 -72 -94 -123q-70 -55 -162 -82q-102 -29 -232 -28q-236 0 -364.5 92t-165.5 266z" />
<glyph unicode="T" d="M76 1194v156h1075v-156h-442v-1194h-191v1194h-442z" />
<glyph unicode="U" d="M141 471v879h193v-852q0 -98 12 -166q12 -70 43 -113t82 -63q49 -20 133 -21q86 0 139 21q55 20 88 63q33 41 50 117q14 66 14 176v838h190v-861q0 -131 -28 -233q-25 -90 -90 -158q-59 -61 -150 -90q-92 -29 -213 -28.5t-203 26.5q-84 27 -143 86q-61 61 -88 152 q-29 96 -29 227z" />
<glyph unicode="V" d="M10 1350h201l319 -904q4 -10 10.5 -28.5l11.5 -33.5t9 -30l27 -92q14 -47 26 -94q12 45 27 92l27 90l30 96l320 904h201l-506 -1350h-199z" />
<glyph unicode="W" d="M0 1350h188l111 -836q4 -25 8 -73t4 -54q2 -14 5 -53t6 -58q8 -84 10 -108q8 33 15 66.5l15 68.5q2 12 6.5 27.5t8.5 31.5q6 31 14 62l15 57q4 14 8 29.5t6 21.5l108 400h174l109 -400q2 -6 6 -20t8 -31q6 -29 15 -57q2 -10 7 -29.5t7 -29.5l8 -32t6 -28l15.5 -69.5 t15.5 -67.5q2 12 4 35l8 84q2 27 6.5 56.5t6.5 55.5q4 41 12 115l102 836h191l-211 -1350h-207l-104 387q-2 8 -5.5 19.5l-7.5 25.5q-6 27 -14 55l-16 62q-8 31 -15 61l-33 146l-34 -148q-6 -31 -15 -61l-16 -60q-4 -14 -14 -55q-2 -12 -6.5 -23.5t-6.5 -21.5l-104 -387 h-209z" />
<glyph unicode="X" d="M37 0l475 705l-434 645h205l331 -514l332 514h205l-434 -645l477 -705h-207l-373 573l-372 -573h-205z" />
<glyph unicode="Y" d="M37 1350h205l372 -613l373 613h205l-483 -766v-584h-189v584z" />
<glyph unicode="Z" d="M74 0v143l817 1051h-746v156h963v-140l-817 -1054h864v-156h-1081z" />
<glyph unicode="[" d="M410 -426v1911h546v-139h-366v-1633h366v-139h-546z" />
<glyph unicode="\" d="M115 1485h178l821 -1505h-182z" />
<glyph unicode="]" d="M270 -287h367v1633h-367v139h547v-1911h-547v139z" />
<glyph unicode="^" d="M133 442l379 908h203l379 -908h-154l-330 803l-325 -803h-152z" />
<glyph unicode="_" d="M-4 -125h1237v-94h-1237v94z" />
<glyph unicode="`" d="M401 1432v28h197l227 -239v-21h-123z" />
<glyph unicode="a" d="M127 301q0 106 41 176q43 72 102 109q61 37 146 53q88 16 166 16l235 4v60q0 68 -12 115t-41 75q-33 33 -70 43q-43 12 -98 13q-51 0 -90 -7q-35 -6 -70 -28q-29 -18 -47 -53t-24 -84l-189 18q9 65 37 117q27 51 78 92q49 41 125 61q74 20 182 21q197 0 301 -94 q100 -92 100 -271v-465q0 -80 22.5 -120.5t80.5 -40.5q18 0 28 2q4 2 14.5 4t14.5 2v-113q-34 -9 -67 -12q-45 -4 -70 -4q-45 0 -88 14q-37 12 -60 41q-23 31 -34 68q-14 45 -17 94h-6q-27 -49 -61 -94q-29 -37 -78 -72q-41 -29 -100 -45q-61 -16 -132 -16q-158 0 -237 86 q-82 88 -82 235zM317 299q0 -80 45.5 -131t129.5 -51q80 0 145 33q63 31 100 77q41 49 62 107q18 49 18 110v91l-188 -5q-37 0 -111 -8q-53 -6 -100 -33q-49 -29 -74 -69q-27 -45 -27 -121z" />
<glyph unicode="b" d="M178 0q0 2 1 12.5t1 18.5q0 6 1 23.5t1 27.5t1 31.5t1 33.5v76v1262h181v-424v-57q0 -10 -1.5 -28t-1.5 -24q0 -8 -1 -25.5t-1 -23.5h5q51 111 133 154q88 47 200 47q195 0 293 -139q98 -138 99 -418q0 -287 -101 -426q-100 -141 -291 -141q-115 0 -200 43 q-84 41 -133 141h-3q0 -8 -1 -25.5t-1 -28t-1 -27.5t-1 -24q0 -8 -1 -21t-1 -18q0 -6 -3 -16l-1 -4h-174zM365 524q0 -123 20 -198q23 -84 57 -127q39 -47 88 -66q57 -20 117 -20q61 0 113 22q47 20 80 76q33 57 47 131q16 88 16 199q0 119 -14 192q-14 76 -47 131 q-29 49 -78 76q-47 25 -115 25q-63 0 -119 -23q-51 -20 -88 -74q-37 -51 -57 -135q-20 -82 -20 -209z" />
<glyph unicode="c" d="M129 543q0 163 43 270q43 106 115 172q68 61 159 90q86 27 187 27q96 0 174 -25q74 -25 133 -69q55 -43 90 -103q35 -61 47 -127l-190 -12q-14 90 -80 143q-63 51 -182 52q-90 0 -146 -27q-57 -27 -94 -80q-35 -49 -51 -131q-14 -72 -15 -176q0 -106 15 -180 q16 -82 51 -136q39 -57 94 -84q61 -29 144 -28q109 0 180 53q70 51 88 162l188 -12q-9 -68 -43 -129q-37 -66 -90 -109q-66 -51 -135 -76q-82 -29 -180 -28q-135 0 -232 43q-100 45 -155 118q-58 77 -86 178q-29 105 -29 224z" />
<glyph unicode="d" d="M137 532q0 565 393 566q120 0 203 -43q78 -41 129 -142h2v27v45v49q0 8 -1 18.5t-1 12.5v420h180v-1262q0 -14 1 -38.5t1 -37.5v-65q0 -10 1.5 -27.5t1.5 -23.5q0 -8 1 -18.5t1 -12.5h-172q0 10 -3 23q-4 25 -4 43q0 8 -1 25.5t-1 27.5t-1 28.5t-1 26.5h-4 q-51 -106 -131 -154q-82 -47 -201 -47q-201 0 -297 139t-96 420zM324 539q0 -119 14 -193q16 -84 45 -133q31 -51 80 -75.5t115 -24.5q70 0 122 24q51 25 88 76t56 137q18 84 18 205q0 113 -18.5 192.5t-53 127t-90.5 69.5q-49 20 -120 21q-61 0 -113 -23q-49 -22 -80 -74 q-33 -55 -47 -133q-16 -87 -16 -196z" />
<glyph unicode="e" d="M133 549q0 158 39 262q39 106 107 170q66 63 155.5 92t181.5 29q137 0 222 -41q90 -43 147 -119q61 -80 84 -180q25 -106 25 -236v-22h-772q0 -80 20 -158q18 -71 55 -123q35 -51 95 -80q57 -29 131 -28q57 0 102 12t84 35q35 20 61.5 53t36.5 66l158 -45 q-12 -39 -47 -91q-27 -41 -86 -82q-47 -33 -129 -59q-78 -25 -180 -24q-113 0 -205 36.5t-156 106.5q-61 68 -96 178q-33 105 -33 248zM324 641h583q-10 96 -32.5 157.5t-65.5 100.5t-86 53q-53 16 -104.5 16.5t-96.5 -14.5q-53 -16 -94 -51t-72 -100q-28 -62 -32 -162z" />
<glyph unicode="f" d="M137 940v141h262v27q0 98 23 172q20 68 74 117q47 43 129 65q84 23 192 23q8 0 31.5 -1t38.5 -1q27 0 80 -4l38.5 -5.5t36.5 -3.5l58 -8v-143q-6 2 -26.5 3t-29.5 1l-75 6q-53 4 -74 4q-14 0 -32.5 1t-22.5 1q-59 0 -115 -10q-51 -10 -82 -37q-33 -29 -47 -74 q-16 -49 -16 -122v-11h491v-141h-491v-940h-181v940h-262z" />
<glyph unicode="g" d="M143 549q0 137 20.5 233.5t69.5 171.5q47 72 123 109q78 37 187 37q113 0 196.5 -53.5t128.5 -149.5h2q0 8 1 26.5t1 29t1 31t1 28.5q0 18 5 47q0 6 1 11t2 8l1 3h172q0 -2 -1 -12t-1 -18q0 -6 -1 -23.5t-1 -28t-1 -32t-1 -33.5v-76v-825q0 -229 -107 -342 q-109 -115 -328 -115q-90 0 -157 18q-72 18 -119 56q-51 39 -80 84q-31 49 -43 108l184 27q18 -78 74 -117q57 -41 148 -41q55 0 102 19q45 18 78 53t51 98q16 55 16 146v194h-2q-23 -47 -47 -78q-39 -47 -71 -67q-49 -31 -97 -47q-49 -16 -127 -17q-106 0 -174 33 q-74 35 -119 100q-47 68 -67 168q-21 97 -21 236zM330 551q0 -123 14 -195q16 -78 47 -125q33 -51 80 -67q49 -18 115 -19q53 0 102 21q53 23 92 70q37 47 64 126q25 76 24 189q0 119 -22 192q-25 82 -64 129.5t-90 70t-104 22.5q-66 0 -117 -23q-49 -20 -80 -72 q-33 -53 -47 -126.5t-14 -192.5z" />
<glyph unicode="h" d="M184 0v1485h183v-391q0 -35 -5 -101q-2 -27 -4 -51t-2 -45h4q27 49 55.5 84t73.5 66q35 25 93 40q49 14 116 15q82 0 150 -23q61 -20 108 -67q45 -45 70 -117q23 -66 23 -174v-721h-181v694q0 78 -16 133q-14 49 -47 82q-29 29 -70 41q-39 12 -88 13q-55 0 -110 -23 q-45 -18 -88 -66q-40 -43 -62 -104q-23 -63 -22 -143v-627h-181z" />
<glyph unicode="i" d="M143 0v141h422v799h-319v141h499v-940h379v-141h-981zM545 1292v193h200v-193h-200z" />
<glyph unicode="j" d="M117 -242q18 -6 53 -12q12 -2 33.5 -5t32.5 -5q27 -4 75 -8q53 -4 78 -4q59 0 105 14q51 16 86 45q31 27 55 78q20 43 20 114v965h-405v141h586v-1110q0 -113 -35 -184q-37 -78 -94.5 -123t-137.5 -67.5t-163 -22.5q-29 0 -82 4q-35 2 -80 10q-25 4 -70 13q-27 4 -57 16 v141zM637 1292v193h199v-193h-199z" />
<glyph unicode="k" d="M236 0v1485h180v-928l475 524h211l-438 -465l460 -616h-211l-364 500l-133 -99v-401h-180z" />
<glyph unicode="l" d="M133 0v141h422v1200h-289v144h469v-1344h381v-141h-983z" />
<glyph unicode="m" d="M98 1081h150l1 -8q1 -8 1 -16q0 -6 1 -21.5t1 -26t1 -28.5t1 -27v-47h2q10 33 31 74q16 35 43 63q23 25 61 43q31 14 80 15q92 0 133 -47q43 -49 62 -150h2q23 55 39 84q18 33 51 61.5t63 39.5q37 12 82 12q59 0 105 -23q43 -22 67.5 -67.5t36.5 -116.5q12 -72 12 -174 v-721h-168v686q0 80 -6 131q-6 43 -20 86q-12 35 -35 47.5t-53 12.5q-63 0 -105 -84q-39 -80 -39 -252v-627h-168v686q0 80 -6 131q-6 52 -18 86q-12 35 -35 47q-20 12 -53 13q-35 0 -60 -25q-27 -27 -45 -72q-20 -49 -28 -112q-10 -72 -11 -148v-606h-170v852v70 q0 12 -1 36.5t-1 34.5q0 12 -1 30.5t-1 27.5q0 10 -1 20z" />
<glyph unicode="n" d="M178 1081h170l1 -9q1 -9 1 -17q0 -6 2 -23.5t2 -27.5q0 -8 1 -28t1 -30v-49h4q31 57 56 84q37 41 76 66q37 23 96 40q49 14 119 15q80 0 147 -23q63 -20 107 -67q45 -47 65 -117q23 -74 23 -174v-721h-181v694q0 78 -16 133q-14 49 -47 82q-29 29 -70 41q-39 12 -88 13 q-55 0 -110 -23q-45 -18 -88 -66q-40 -43 -62 -104q-23 -63 -22 -143v-627h-181v852v70q0 12 -1 36.5t-1 34.5q0 12 -1 30.5t-1 27.5q0 10 -1 20z" />
<glyph unicode="o" d="M129 543q0 274 127 418q125 141 358 141q244 0 365 -139q119 -137 119 -420q0 -139 -35 -248t-96 -176q-65 -71 -154 -105q-92 -35 -205 -34q-104 0 -196 34q-90 35 -152 105q-63 74 -96 174q-35 109 -35 250zM319 543q0 -133 23 -209q25 -84 63.5 -131t92.5 -70 q49 -20 108.5 -20t120.5 20q57 18 96 67.5t62 133.5q23 86 22 209q0 127 -20 207q-23 86 -60 131q-43 51 -92 69q-52 18 -117 19q-68 0 -120 -21q-55 -20 -95 -69q-41 -49 -61 -131q-23 -86 -23 -205z" />
<glyph unicode="p" d="M178 1081h176l1 -3q1 -3 1 -7v-10t2 -21.5t2 -23.5t1 -26.5t1 -29t1.5 -30t1.5 -27.5h4q27 55 55 90q33 39 72 64q33 20 90 35q49 12 112 12q113 0 185 -39q74 -41 121 -115q43 -70 65 -176q20 -100 20.5 -227t-20.5 -228q-23 -113 -65 -180q-45 -74 -121 -116 q-74 -43 -185 -43q-49 0 -104 10q-45 8 -94 33q-37 18 -76 57q-37 37 -57 84h-5v-17q0 -4 1.5 -17t1.5 -21v-54q0 -10 1 -28.5t1 -28.5v-424h-183v1284v78q0 12 -1 33.5t-1 32t-1 28t-1 23.5q0 8 -1 17t-1 11zM367 524q0 -115 18 -194.5t53 -126.5t90 -70q49 -20 121 -20 q70 0 121 28q49 27 80 84q29 51 41 135q12 80 12 187q0 115 -10 178q-12 80 -43 131q-33 57 -78 82q-47 27 -121 27q-58 0 -110.5 -18.5t-91.5 -67.5q-37 -47 -60 -134q-22 -90 -22 -221z" />
<glyph unicode="q" d="M137 532q0 283 98.5 424.5t292.5 141.5q74 0 117 -11q49 -12 92 -34q35 -18 70 -58q23 -25 53 -82h2q0 8 1 25.5t1 28t2 28t2 25.5q0 18 4 43q2 12 2 20h177q0 -2 -1 -11t-1 -17q0 -6 -1 -24.5t-1 -31.5q0 -10 -1.5 -36.5t-1.5 -44.5v-117v-1227h-182v440q0 8 1 26.5 t1 29.5v55q0 16 1 29.5t1 27.5h-2q-23 -47 -55 -90q-27 -35 -72 -65q-37 -25 -92 -39q-57 -14 -115 -15q-203 0 -297 142q-96 143 -96 417zM324 539q0 -113 14 -187q16 -84 45 -133q31 -53 78 -79.5t117 -26.5q53 0 110 20q49 18 90 68q40 49 62 135q23 90 22.5 219 t-18.5 197q-23 84 -57.5 127t-90.5 65q-49 20 -116.5 20.5t-116.5 -24.5t-80 -78q-29 -49 -45 -133q-14 -73 -14 -190z" />
<glyph unicode="r" d="M242 1081h172q0 -4 6 -23.5t8 -31.5q2 -8 7 -29.5t7 -33.5l13 -68q2 -12 4 -35.5t2 -28.5h6q33 74 57 113q33 51 74 84q51 39 100 55q58 18 142 19q72 0 108 -4q47 -4 96 -13v-167q-33 6 -98 14q-53 6 -112 6q-82 0 -152 -35q-66 -33 -113 -92t-71 -137q-25 -77 -25 -166 v-508h-178v700q0 57 -6 115q-6 68 -15 109q-10 61 -18 94q-2 10 -7 32.5t-7 30.5z" />
<glyph unicode="s" d="M168 248l158 31q12 -53 38.5 -86t63.5 -52q31 -16 86 -22q33 -4 107 -4q66 0 108 8q51 10 84 29q37 23 57 53q20 33 21 80q0 49 -24.5 79.5t-69.5 53.5q-35 16 -105 35q-35 8 -69.5 17l-63.5 17q-115 33 -127 37q-74 25 -113 51q-47 33 -79 84q-29 45 -29 127 q0 150 104 230q109 84 308 84q84 0 147 -15q68 -16 125 -47q51 -29 90 -80q33 -43 49 -118l-162 -21q-6 45 -28 74q-20 27 -57 43t-76 22q-43 6 -88 7q-244 0 -244 -152q0 -47 20 -74q23 -29 62 -47q51 -25 92 -33l119 -30q68 -16 133 -37q72 -23 125 -55q57 -35 94 -90.5 t37 -137.5q0 -76 -31 -137t-86 -104q-57 -45 -137 -66q-86 -23 -186 -22q-80 0 -170 14q-66 10 -132 45q-55 29 -96 82q-37 47 -55 127z" />
<glyph unicode="t" d="M190 940v141h170l58 283h121v-283h432v-141h-432v-651q0 -84 41 -119q43 -37 141 -37q25 0 82 4q53 4 82 8q10 2 35.5 5.5t37.5 5.5q37 6 60 12v-137q-6 -2 -25.5 -6.5t-31.5 -8.5q-39 -10 -80 -16q-16 -2 -48 -5t-47 -5q-53 -6 -104 -6q-162 0 -244 69q-80 68 -80 215 v672h-168z" />
<glyph unicode="u" d="M184 360v721h181v-686q0 -80 12 -131q14 -57 37 -86q27 -33 69 -45q49 -14 107 -14q59 0 115 22q49 20 88 66q37 43 55 104q20 68 20 144v626h181v-850v-71q0 -12 1 -37t1 -35q0 -12 1 -30.5t1 -26.5q0 -10 1 -21l1 -10h-170l-1 9q-1 9 -1 18q0 6 -1 23.5t-1 27.5 q0 8 -1 27.5t-1 29.5t-1 26.5t-1 22.5h-3q-23 -43 -57 -84q-31 -37 -72 -65q-33 -23 -94 -41q-49 -14 -123 -14q-88 0 -155 22q-63 20 -106.5 67.5t-61.5 118.5q-21 82 -21 172z" />
<glyph unicode="v" d="M70 1081h200l269 -702l5 -15.5t6 -20.5t5 -19q4 -16 10 -33t10 -33l18.5 -65.5l14.5 -51.5q2 6 5 19.5t10 32.5l20 65l21 64l18 55l276 704h201l-444 -1081h-213z" />
<glyph unicode="w" d="M20 1081h179l94 -606q2 -25 8 -67q2 -16 5 -46t5 -45l11 -94q4 -61 4 -73l20 86q4 14 6 24t6 21.5t8.5 26l10.5 33.5t6 21l135 424h193l131 -424q4 -14 14 -55q8 -27 18 -71q14 -49 23 -86q0 43 2 73q2 35 10 94l13 91l5 36.5t5 30.5l100 606h176l-190 -1081h-205 l-141 471l-19 61q-14 47 -18 66q-6 18 -21 76q-12 -49 -20 -74q-14 -53 -18.5 -67.5l-11.5 -38t-9 -27.5l-147 -467h-203z" />
<glyph unicode="x" d="M94 0l416 555l-397 526h198l299 -419l299 419h201l-397 -524l420 -557h-201l-322 444l-321 -444h-195z" />
<glyph unicode="y" d="M66 1081h192l264 -641q18 -51 27 -67l31 -78l26 -70l15 -39q4 14 14 41l27 68q25 63 30 78l14.5 36.5l12.5 30.5l252 641h190l-456 -1081q-37 -98 -76 -176t-90 -135q-47 -53 -108.5 -84t-137.5 -31q-45 0 -64 2q-23 2 -61 10v135q25 -4 43 -4q8 0 21.5 -1t19.5 -1 q78 0 149 60q68 55 117 186l19 49z" />
<glyph unicode="z" d="M147 0v137l680 805h-641v139h844v-137l-682 -805h719v-139h-920z" />
<glyph unicode="{" d="M227 461v137q55 4 101 14q45 12 88 41q37 27 63 72q23 39 23 104v353q0 68 22 125q23 59 60 96t94 59.5t119 22.5h264v-139h-213q-41 0 -78 -11q-25 -6 -53 -35q-20 -20 -31 -59q-8 -33 -8 -90v-346q0 -61 -21 -105q-22 -46 -55 -79q-41 -41 -74 -58q-43 -23 -82 -31v-2 q33 -6 84 -32q33 -16 74 -58q31 -31 53 -80q20 -43 21 -104v-346q0 -111 39 -152q41 -45 131 -45h213v-139h-264q-61 0 -119 23q-53 20 -94 61q-37 37 -60 96q-23 57 -22 123v352q0 68 -23 107q-25 43 -63 70q-43 29 -88 40q-46 11 -101 15z" />
<glyph unicode="|" d="M530 -426v1911h166v-1911h-166z" />
<glyph unicode="}" d="M168 -287h213q90 0 131 45t41 152v346q0 66 18 104q23 49 54 80q39 39 73 58q45 25 84 32v2q-43 10 -82 31q-35 18 -73 58q-31 31 -54 79q-20 43 -20 105v346q0 49 -10 90q-10 39 -31 59q-27 27 -55 35q-37 10 -76 11h-213v139h264q61 0 119 -23q53 -20 92 -59t62 -96 q20 -53 20 -125v-353q0 -61 25 -104q27 -49 61 -72q41 -29 90 -41q45 -10 100 -14v-137q-55 -4 -100 -15q-49 -12 -90 -40q-35 -25 -61 -70q-25 -43 -25 -107v-352q0 -70 -20 -123q-23 -57 -62 -96q-41 -41 -92 -61q-57 -23 -119 -23h-264v139z" />
<glyph unicode="~" d="M109 580v143q55 41 114 61q68 23 148 23q40 0 80 -6q27 -4 79 -17q27 -6 76 -22q18 -6 37 -13.5t37 -13.5l45 -14q29 -10 51 -16q31 -8 51 -11q33 -4 50 -4q68 0 129 25q63 25 114 67v-149q-31 -22 -61 -37q-35 -16 -60 -25q-41 -12 -65 -14q-45 -4 -74 -4q-63 0 -141 22 q-33 10 -146 48q-127 45 -217 45q-37 0 -71 -6q-37 -6 -62 -17q-20 -8 -57 -29q-34 -18 -57 -36z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa2;" d="M133 655q0 117 29 215q27 90 86 164q55 68 137 111q76 39 184 49v184h129v-184q86 -6 152 -33q61 -25 115 -71q49 -43 79.5 -98.5t42.5 -119.5l-184 -14q-18 90 -81.5 145.5t-188.5 55.5q-156 0 -236 -101q-82 -104 -82 -290q0 -197 84 -299q82 -100 236 -101 q59 0 102 15q49 16 82 40.5t60 67.5q23 39 32 94l183 -12q-8 -59 -37 -119q-25 -53 -80 -104q-51 -49 -118.5 -78t-160.5 -39v-194h-129v194q-109 8 -190 51q-84 43 -137 109q-53 63 -82 162q-27 87 -27 200z" />
<glyph unicode="&#xa3;" d="M55 0v154q37 18 80 47q39 25 62 57q23 31 39 86t16 127v141h-186v142h186v221q0 90 24 164q23 70 78 125q53 53 131 79.5t189 26.5q78 0 137 -14q63 -14 113 -43q45 -25 86 -74q39 -45 55 -98q-2 -2 -6 -4t-21 -7q-4 -2 -11 -5t-15 -5t-16.5 -5t-16.5 -5l-37.5 -11 t-50.5 -16q-20 61 -81.5 94t-135.5 33q-123 0 -182 -57q-61 -59 -62 -182v-217h410v-142h-410v-139q0 -57 -6 -106q-6 -41 -27 -88q-18 -39 -47 -68q-33 -33 -74 -53h601q59 0 86 26q29 29 41 80l167 -24q-9 -43 -24 -86q-14 -41 -43 -76q-31 -37 -68 -58q-39 -20 -98 -20 h-883z" />
<glyph unicode="&#xa5;" d="M51 1350h201l360 -619l365 619h199l-412 -670h321v-143h-383v-138h383v-143h-383v-256h-178v256h-381v143h381l2 138h-383v143h320z" />
<glyph unicode="&#xa9;" d="M31 762q0 186 47 323q47 135 125 224q84 92 184 133q108 43 227 43q120 0 228 -43q100 -41 184 -133q78 -88 125 -224q45 -133 45 -323.5t-45 -323.5q-47 -139 -125 -225q-84 -92 -184 -133q-102 -41 -227.5 -41t-227.5 41q-100 41 -184 133q-78 86 -125 225 q-47 138 -47 324zM127 762q0 -178 37 -289q39 -117 104 -194q63 -76 156 -111q96 -37 190.5 -37t190.5 37q88 33 156 111q68 76 106 194q39 117 39 289q0 168 -39 285q-39 119 -106.5 194.5t-155.5 112.5q-84 35 -190.5 35t-190.5 -35q-94 -39 -156 -113q-66 -78 -104 -194 q-37 -111 -37 -285zM268 764q0 94 23 174q23 84 63 135q39 51 109 84q66 31 151 31q68 0 117 -19q53 -20 86 -46.5t60 -67.5q29 -41 41 -76l-113 -35q-8 23 -27 51q-16 25 -39 45q-20 18 -53 31q-27 10 -70 10q-53 0 -98 -22q-43 -20 -69 -64q-27 -41 -39.5 -100t-12.5 -131 q0 -76 14.5 -133.5t43.5 -102.5q29 -43 69 -67q43 -25 99 -25q37 0 71 15q25 10 56 36q23 20 39 49t28 58l117 -37q-12 -29 -45 -82q-25 -39 -64 -72q-41 -35 -86 -51q-49 -18 -116 -18q-90 0 -158 31q-63 29 -108.5 90t-65.5 135q-23 84 -23 174z" />
<glyph unicode="&#xad;" d="M334 465v160h561v-160h-561z" />
<glyph unicode="&#xae;" d="M31 762q0 186 47 323q47 135 125 224q84 92 184 133q108 43 227 43q120 0 228 -43q100 -41 184 -133q78 -88 125 -224q45 -133 45 -323.5t-45 -323.5q-47 -139 -125 -225q-84 -92 -184 -133q-102 -41 -227.5 -41t-227.5 41q-100 41 -184 133q-78 86 -125 225 q-47 138 -47 324zM127 762q0 -178 37 -289q39 -117 104 -194q63 -76 156 -111q96 -37 190.5 -37t190.5 37q88 33 156 111q68 76 106 194q39 117 39 289q0 168 -39 285q-39 119 -106.5 194.5t-155.5 112.5q-84 35 -190.5 35t-190.5 -35q-94 -39 -156 -113q-66 -78 -104 -194 q-37 -111 -37 -285zM328 342v832h307q141 0 217 -63.5t76 -172.5q0 -104 -51 -164q-55 -63 -138 -82l222 -350h-146l-199 338h-161v-338h-127zM455 774h182q80 0 123 43q41 41 41 119q0 68 -47 104q-43 35 -129 35h-170v-301z" />
<glyph unicode="&#xb4;" d="M401 1200v21l228 239h196v-28l-299 -232h-125z" />
<glyph unicode="&#x2000;" horiz-adv-x="741" />
<glyph unicode="&#x2001;" horiz-adv-x="1482" />
<glyph unicode="&#x2002;" horiz-adv-x="741" />
<glyph unicode="&#x2003;" horiz-adv-x="1482" />
<glyph unicode="&#x2004;" horiz-adv-x="493" />
<glyph unicode="&#x2005;" horiz-adv-x="370" />
<glyph unicode="&#x2006;" horiz-adv-x="245" />
<glyph unicode="&#x2007;" horiz-adv-x="245" />
<glyph unicode="&#x2008;" horiz-adv-x="184" />
<glyph unicode="&#x2009;" horiz-adv-x="294" />
<glyph unicode="&#x200a;" horiz-adv-x="81" />
<glyph unicode="&#x2010;" d="M334 465v160h561v-160h-561z" />
<glyph unicode="&#x2011;" d="M334 465v160h561v-160h-561z" />
<glyph unicode="&#x2012;" d="M334 465v160h561v-160h-561z" />
<glyph unicode="&#x2013;" d="M170 451v137h889v-137h-889z" />
<glyph unicode="&#x2014;" d="M-10 451v137h1247v-137h-1247z" />
<glyph unicode="&#x2018;" d="M397 862l312 623h122l-169 -623h-265z" />
<glyph unicode="&#x2019;" d="M399 862l168 623h267l-312 -623h-123z" />
<glyph unicode="&#x201c;" d="M176 862l311 623h123l-168 -623h-266zM616 862l312 623h123l-170 -623h-265z" />
<glyph unicode="&#x201d;" d="M178 862l168 623h266l-311 -623h-123zM616 862l170 623h265l-312 -623h-123z" />
<glyph unicode="&#x2022;" d="M336 682q0 55 22 106q25 55 58 88t88 58q51 23 106 22q53 0 109 -22q51 -20 90 -57q35 -33 59 -89q23 -51 23 -106q0 -53 -23 -109q-23 -57 -59 -90q-43 -41 -90 -59q-55 -23 -109 -23q-55 0 -106 22.5t-88 59.5q-35 35 -57.5 90.5t-22.5 108.5z" />
<glyph unicode="&#x2026;" d="M117 0v219h176v-219h-176zM528 0v219h172v-219h-172zM938 0v219h174v-219h-174z" />
<glyph unicode="&#x202f;" horiz-adv-x="294" />
<glyph unicode="&#x205f;" horiz-adv-x="370" />
<glyph unicode="&#x20ac;" d="M90 461v143h121q-4 29 -4 39v37v43q0 10 4 35h-121v141h129q29 233 156 352q129 119 354 119q57 0 107 -6q45 -6 96 -23q61 -20 90 -34q39 -18 86 -54l-82 -139q-59 45 -127 72q-70 29 -156 28q-74 0 -129 -14q-59 -16 -98 -49q-45 -39 -67 -96q-25 -61 -37 -158h460 v-139h-475v-37q0 -8 -1 -20.5t-1 -20.5q0 -35 4 -76h473v-141h-458q10 -86 28 -139q23 -66 60 -105q39 -43 96 -63q55 -20 139 -21q55 0 94 8q47 10 82 25q41 16 70 33q12 6 34.5 20.5t29.5 18.5l75 -136q-57 -37 -86 -51q-53 -27 -92 -39q-53 -16 -100 -24 q-61 -10 -117 -10q-117 0 -209 34q-88 35 -151 97q-57 57 -97 151q-37 88 -49 199h-131z" />
<glyph unicode="&#x2122;" d="M4 1391v92h457v-92h-174v-549h-113v549h-170zM518 842v641h158l182 -465l4 -8l4 -13q4 -8 6 -14q27 70 29 76t6 14t6 14q6 14 9 25q2 4 5 11t3 10l4 8l137 342h154v-641h-107v352v160l-6 -19q-2 -8 -4 -14q-2 -2 -2 -6t-2 -6l-191 -467h-90l-135 342l-10 30 q-4 10 -10 26.5t-13 33.5q-27 66 -30 80v-43v-469h-107z" />
<glyph unicode="&#xe000;" horiz-adv-x="1080" d="M0 1080h1080v-1080h-1080v1080z" />
<glyph unicode="&#xf001;" d="M84 950v131h152v123q0 59 12 109q14 59 39 88q33 39 82 59q55 23 131 23q23 0 67 -4q41 -4 60 -9v-137q-25 4 -39.5 6t-40.5 2q-41 0 -66 -12q-27 -12 -39 -31q-14 -20 -20 -50.5t-6 -67.5v-99h211v-131h-211v-950h-180v950h-152zM881 0v1081h180v-1081h-180zM881 1313 v172h180v-172h-180z" />
<glyph unicode="&#xfb01;" d="M84 950v131h152v123q0 59 12 109q14 59 39 88q33 39 82 59q55 23 131 23q23 0 67 -4q41 -4 60 -9v-137q-25 4 -39.5 6t-40.5 2q-41 0 -66 -12q-27 -12 -39 -31q-14 -20 -20 -50.5t-6 -67.5v-99h211v-131h-211v-950h-180v950h-152zM881 0v1081h180v-1081h-180zM881 1313 v172h180v-172h-180z" />
<glyph unicode="&#xf002;" d="M84 950v131h152v123q0 59 12 109q14 59 39 88q33 39 82 59q55 23 131 23q23 0 67 -4q41 -4 60 -9v-137q-25 4 -39.5 6t-40.5 2q-41 0 -66 -12q-27 -12 -39 -31q-14 -20 -20 -50.5t-6 -67.5v-99h211v-131h-211v-950h-180v950h-152zM881 0v1485h180v-1485h-180z" />
<glyph unicode="&#xfb02;" d="M84 950v131h152v123q0 59 12 109q14 59 39 88q33 39 82 59q55 23 131 23q23 0 67 -4q41 -4 60 -9v-137q-25 4 -39.5 6t-40.5 2q-41 0 -66 -12q-27 -12 -39 -31q-14 -20 -20 -50.5t-6 -67.5v-99h211v-131h-211v-950h-180v950h-152zM881 0v1485h180v-1485h-180z" />
<glyph unicode="&#xfb03;" horiz-adv-x="3686" d="M2601 0v141h422v799h-319v141h499v-940h379v-141h-981zM3003 1292v193h200v-193h-200zM1366 940v141h262v27q0 98 23 172q20 68 74 117q47 43 129 65q84 23 192 23q8 0 31.5 -1t38.5 -1q27 0 80 -4l38.5 -5.5t36.5 -3.5l58 -8v-143q-6 2 -26.5 3t-29.5 1l-75 6 q-53 4 -74 4q-14 0 -32.5 1t-22.5 1q-59 0 -115 -10q-51 -10 -82 -37q-33 -29 -47 -74q-16 -49 -16 -122v-11h491v-141h-491v-940h-181v940h-262zM137 940v141h262v27q0 98 23 172q20 68 74 117q47 43 129 65q84 23 192 23q8 0 31.5 -1t38.5 -1q27 0 80 -4l38.5 -5.5 t36.5 -3.5l58 -8v-143q-6 2 -26.5 3t-29.5 1l-75 6q-53 4 -74 4q-14 0 -32.5 1t-22.5 1q-59 0 -115 -10q-51 -10 -82 -37q-33 -29 -47 -74q-16 -49 -16 -122v-11h491v-141h-491v-940h-181v940h-262z" />
<glyph unicode="&#xfb04;" horiz-adv-x="3686" d="M2591 0v141h422v1200h-289v144h469v-1344h381v-141h-983zM1366 940v141h262v27q0 98 23 172q20 68 74 117q47 43 129 65q84 23 192 23q8 0 31.5 -1t38.5 -1q27 0 80 -4l38.5 -5.5t36.5 -3.5l58 -8v-143q-6 2 -26.5 3t-29.5 1l-75 6q-53 4 -74 4q-14 0 -32.5 1t-22.5 1 q-59 0 -115 -10q-51 -10 -82 -37q-33 -29 -47 -74q-16 -49 -16 -122v-11h491v-141h-491v-940h-181v940h-262zM137 940v141h262v27q0 98 23 172q20 68 74 117q47 43 129 65q84 23 192 23q8 0 31.5 -1t38.5 -1q27 0 80 -4l38.5 -5.5t36.5 -3.5l58 -8v-143q-6 2 -26.5 3 t-29.5 1l-75 6q-53 4 -74 4q-14 0 -32.5 1t-22.5 1q-59 0 -115 -10q-51 -10 -82 -37q-33 -29 -47 -74q-16 -49 -16 -122v-11h491v-141h-491v-940h-181v940h-262z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

14
fonts/monaco.css Normal file
View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'MonacoRegular';
src: url('monaco/monaco-webfont.eot');
src: url('monaco/monaco-webfont.eot?#iefix') format('embedded-opentype'),
url('monaco/monaco-webfont.woff') format('woff'),
url('monaco/monaco-webfont.ttf') format('truetype'),
url('monaco/monaco-webfont.svg#MonacoRegular') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-monaco * {
font-family: Monaco, 'MonacoRegular', 'Courier New', monospace !important;
}

Binary file not shown.

View File

@ -0,0 +1,239 @@
<?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>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : 199091 Apple Computer Inc 199091 Type Solutions Inc 199091 The Font Bureau Inc
</metadata>
<defs>
<font id="webfontyFRf53FT" horiz-adv-x="1229" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M529 442l-46 1110h248l-47 -1110h-155zM615 -47q-59 0 -101.5 42.5t-42.5 101.5t42.5 101t101.5 42q58 0 100.5 -41.5t42.5 -101.5t-43 -102t-100 -42z" />
<glyph unicode="&#x22;" d="M465 1055h-128l-64 559h249zM896 1055h-127l-57 559h244z" />
<glyph unicode="#" d="M71 419v140h196l110 411h-306v139h341l117 443h146l-117 -443h283l122 443h146l-120 -443h168v-139h-207l-109 -411h316v-140h-355l-114 -419h-148l116 419h-279l-110 -419h-148l111 419h-159zM414 559h280l113 411h-286z" />
<glyph unicode="$" d="M580 -155v157q-67 0 -139 7t-135 21.5t-145 51.5v192q66 -34 129.5 -58t134 -38t155.5 -20v557l-107 58q-304 163 -304 394q0 123 101 239.5t310 134.5v166h140v-166q118 0 279 -41v-173l-35 10q-151 42 -244 51v-544l112 -64q158 -91 216.5 -179t58.5 -187 q0 -89 -44.5 -172.5t-127.5 -143.5t-215 -83v-170h-140zM580 928v462q-101 -23 -155.5 -76t-54.5 -124q0 -67 46.5 -128.5t163.5 -133.5zM720 632v-460q109 39 147.5 95.5t38.5 126.5q0 68 -38 116.5t-148 121.5z" />
<glyph unicode="%" d="M314 1552q145 0 227.5 -108t82.5 -280q0 -173 -82.5 -280.5t-227.5 -107.5t-228 107.5t-83 280.5q0 172 83 280t228 108zM314 1427q-81 0 -118 -77.5t-37 -185.5q0 -109 37 -186.5t118 -77.5q80 0 117.5 77.5t37.5 186.5q0 108 -37.5 185.5t-117.5 77.5zM166 -47h-164 l1061 1645h165zM912 776q139 0 226 -104t87 -268q0 -189 -92 -296.5t-223 -107.5q-128 0 -217 102.5t-89 285.5q0 174 84 281t224 107zM915 652q-79 0 -117 -76t-38 -194q0 -131 46 -194.5t108 -63.5q66 0 111 69t45 199q0 102 -37.5 181t-117.5 79z" />
<glyph unicode="&#x26;" d="M881 130q-99 -104 -195.5 -140.5t-208.5 -36.5q-214 0 -344.5 121t-130.5 309q0 263 274 491q-82 103 -123.5 192.5t-41.5 166.5q0 93 49 181t135 136t190 48q138 0 231 -74t93 -212q0 -101 -56.5 -202t-234.5 -236l354 -436q15 50 19.5 82t7.5 117t3 105v49h186v-47 q0 -66 -14 -189.5t-84 -262.5l238 -292h-238zM421 992q101 71 160 155.5t59 152.5q0 65 -41.5 111.5t-129.5 46.5q-76 0 -124 -56t-48 -137q0 -45 12 -91.5t90 -151.5zM778 254l-405 498q-190 -164 -190 -354q0 -130 87 -210t211 -80q66 0 133 23t164 123z" />
<glyph unicode="'" d="M683 993h-134l-105 621h341z" />
<glyph unicode="(" d="M1072 -372q-277 17 -467 156.5t-303.5 376.5t-113.5 475t113.5 475t303.5 376.5t467 157.5v-156q-209 -19 -359.5 -140.5t-236.5 -309.5t-86 -403t86 -403t236.5 -309t359.5 -141v-155z" />
<glyph unicode=")" d="M157 1645q277 -18 467 -157.5t303.5 -376.5t113.5 -475t-113.5 -475t-303.5 -376.5t-467 -156.5v155q209 20 359.5 141t237 309t86.5 403t-86.5 403t-237 309.5t-359.5 140.5v156z" />
<glyph unicode="*" d="M519 659l21 347l-283 -190l-93 162l307 150l-307 152l93 159l283 -189l-21 348h188l-26 -348l289 189l94 -159l-308 -152l308 -150l-94 -162l-289 190l26 -347h-188z" />
<glyph unicode="+" d="M1157 621v-156h-465v-465h-156v465h-465v156h465v465h156v-465h465z" />
<glyph unicode="," d="M424 -434v124q72 19 109.5 54.5t60 90t22.5 131.5q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84z" />
<glyph unicode="-" d="M227 551v155h776v-155h-776z" />
<glyph unicode="." d="M614 -47q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5q0 -67 -48 -115t-115 -48z" />
<glyph unicode="/" d="M216 -47h-183l987 1645h177z" />
<glyph unicode="0" d="M614 1598q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5zM311 444l537 841q-51 93 -110.5 125.5t-123.5 32.5q-167 0 -254 -185.5t-87 -470.5q0 -65 4 -140t34 -203zM915 1100l-533 -846 q43 -73 99 -109.5t125 -36.5q190 0 270 212.5t80 471.5q0 160 -41 308z" />
<glyph unicode="1" d="M568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
<glyph unicode="2" d="M1088 0h-939v171q0 66 27 141.5t103 169.5t161 181l106 108q32 33 140 153t142.5 184t34.5 126q0 100 -80 154.5t-180 54.5q-57 0 -127.5 -13t-123.5 -30.5t-172 -71.5v165q126 60 252.5 82.5t208.5 22.5q121 0 222.5 -39.5t151 -122.5t49.5 -177q0 -105 -63.5 -215 t-239.5 -283l-114 -113l-96 -94q-91 -92 -147 -178t-62 -205h746v-171z" />
<glyph unicode="3" d="M145 28v196q229 -116 397 -116q154 0 254.5 93.5t100.5 240.5q0 148 -110.5 241t-375.5 93h-103v155h143q195 0 282 87.5t87 194.5q0 97 -71 163.5t-218 66.5q-165 0 -355 -93v177q190 71 348 71q283 0 390.5 -111.5t107.5 -254.5q0 -106 -57 -199t-210 -166 q135 -40 204 -98t104.5 -137t35.5 -177q0 -218 -161.5 -360t-417.5 -142q-74 0 -161.5 11t-213.5 64z" />
<glyph unicode="4" d="M707 0v434h-659v156l659 962h187v-962h287v-156h-287v-434h-187zM707 590v680l-461 -680h461z" />
<glyph unicode="5" d="M188 807v745h869v-179h-683v-380h32q335 0 516 -140t181 -377q0 -150 -73 -269t-206 -186.5t-283 -67.5t-384 73v203q85 -46 190 -75.5t194 -29.5t174 43t132 125.5t47 168.5q0 145 -128.5 245.5t-456.5 100.5h-121z" />
<glyph unicode="6" d="M292 728q72 107 178.5 174.5t234.5 67.5q121 0 229.5 -59t165.5 -164.5t57 -245.5q0 -221 -141.5 -384.5t-372.5 -163.5q-272 0 -406.5 227.5t-134.5 578.5q0 388 171 613.5t463 225.5q157 0 305 -46v-188q-166 79 -313 79q-208 0 -322 -191t-114 -484v-40zM657 108 q75 0 151 44.5t119.5 137t43.5 201.5q0 142 -73.5 233t-209.5 91q-141 0 -231.5 -105.5t-90.5 -256.5q0 -152 88.5 -248.5t202.5 -96.5z" />
<glyph unicode="7" d="M319 0v139q0 163 37 274t130 247t149 210l162 214l58 75q66 89 114 206h-805v187h985v-124q0 -74 -29.5 -137t-178.5 -269l-71 -98l-104 -146q-100 -141 -148 -225t-72.5 -175t-24.5 -239v-139h-202z" />
<glyph unicode="8" d="M459 837l-34 25q-71 50 -139 147.5t-68 214.5q0 155 122 264.5t310 109.5q115 0 207 -41.5t142 -122.5t50 -177q0 -66 -23 -127.5t-68.5 -122t-180.5 -170.5l84 -67q147 -120 198 -207t51 -195q0 -168 -122 -291.5t-366 -123.5q-245 0 -367 115.5t-122 286.5 q0 255 326 482zM650 932q141 107 176.5 179t35.5 134q0 75 -66 136.5t-170 61.5q-112 0 -170.5 -67t-58.5 -139q0 -70 49 -132t157 -139zM599 738q-264 -203 -264 -380q0 -105 87 -177t206 -72q109 0 195 69t86 172q0 101 -104.5 205t-145.5 136z" />
<glyph unicode="9" d="M936 824q-72 -107 -178.5 -174.5t-234.5 -67.5q-121 0 -229.5 58.5t-165.5 164.5t-57 246q0 220 141.5 383.5t372.5 163.5q272 0 406.5 -227.5t134.5 -578.5q0 -388 -171 -613.5t-463 -225.5q-157 0 -305 47v187q166 -78 313 -78q208 0 322 191t114 484v40zM571 1443 q-75 0 -151 -44.5t-119.5 -136.5t-43.5 -202q0 -141 73.5 -232t209.5 -91q141 0 231.5 105.5t90.5 255.5q0 152 -88.5 248.5t-202.5 96.5z" />
<glyph unicode=":" d="M614 -47q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5q0 -67 -48 -115t-115 -48zM614 822q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5q0 -67 -48 -115t-115 -48z" />
<glyph unicode=";" d="M424 -434v124q72 19 109.5 54.5t60 90t22.5 131.5q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84zM598 822q-67 0 -115 48t-48 115q0 68 48.5 115.5t114.5 47.5t114.5 -47.5t48.5 -115.5 q0 -67 -48 -115t-115 -48z" />
<glyph unicode="&#x3c;" d="M71 543l1086 543v-173l-742 -369l742 -373v-171z" />
<glyph unicode="=" d="M1157 791v-155h-1086v155h1086zM1157 442v-155h-1086v155h1086z" />
<glyph unicode="&#x3e;" d="M1157 543l-1086 -543v173l743 369l-743 373v171z" />
<glyph unicode="?" d="M401 442v35q0 83 14 138.5t53.5 115t118.5 143.5l62 66q18 19 52 62l66 83q84 104 84 180q0 70 -60 124t-195 54q-87 0 -177.5 -23.5t-211.5 -91.5v180q185 90 387 90q224 0 341.5 -91.5t117.5 -237.5q0 -144 -152 -299l-66 -68l-78 -81l-71 -73q-39 -44 -69 -101 t-30 -159v-46h-186zM503 -47q-58 0 -100.5 42.5t-42.5 101.5t42.5 101t100.5 42q59 0 101.5 -41.5t42.5 -101.5t-43 -102t-101 -42z" />
<glyph unicode="@" d="M921 200v-157q-84 -55 -149 -72.5t-140 -17.5q-208 0 -340.5 101.5t-211 283t-78.5 443.5q0 364 167 590.5t451 226.5q281 0 444.5 -200t163.5 -526q0 -144 -42 -236.5t-111 -147t-167 -54.5q-76 0 -124 33.5t-72 154.5q-28 -65 -86 -126.5t-157 -61.5 q-103 0 -170.5 93.5t-67.5 229.5q0 167 96.5 310t348.5 143h191v-438q0 -87 6.5 -123.5t27 -55.5t44.5 -19q39 0 78.5 37.5t60 106t20.5 148.5q0 167 -61 324.5t-181 224.5t-251 67q-139 0 -244.5 -83.5t-173 -250.5t-67.5 -369q0 -203 67 -376t181 -253t254 -80 q159 0 293 130zM712 809v269h-36q-118 0 -170 -37t-82 -116t-30 -174q0 -77 24 -119t66 -42q59 0 120.5 68.5t107.5 150.5z" />
<glyph unicode="A" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156z" />
<glyph unicode="B" d="M172 0v1552h303q273 0 365.5 -41.5t138.5 -122.5t46 -185q0 -82 -27 -155.5t-80 -134t-154 -114.5q185 -74 250.5 -182t65.5 -216q0 -103 -55.5 -200t-155.5 -149t-320 -52h-377zM374 853h212q103 43 150.5 90.5t71 106t23.5 128.5q0 110 -64.5 164t-251.5 54h-141v-543z M374 155h191q160 0 236.5 75.5t76.5 181.5q0 78 -42 143.5t-130 104t-276 38.5h-56v-543z" />
<glyph unicode="C" d="M1088 18q-174 -65 -312 -65q-182 0 -335 97.5t-238 290t-85 435.5q0 241 84 433t237 291t337 99q138 0 312 -65v-184q-161 93 -320 93q-120 0 -219.5 -82t-160.5 -240.5t-61 -344.5q0 -189 63 -349t161 -239.5t217 -79.5q158 0 320 93v-183z" />
<glyph unicode="D" d="M155 0v1552h368q254 0 377.5 -88.5t185.5 -267.5t62 -424q0 -232 -65.5 -407.5t-185.5 -270t-374 -94.5h-368zM357 171h135q205 0 292.5 73t125 202.5t37.5 357.5q0 223 -44 343t-126 184.5t-269 64.5h-151v-1225z" />
<glyph unicode="E" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636z" />
<glyph unicode="F" d="M227 0v1552h853v-156h-651v-527h589v-155h-589v-714h-202z" />
<glyph unicode="G" d="M1088 1q-164 -48 -301 -48q-194 0 -345.5 96t-237.5 289.5t-86 437.5q0 241 84 433t237 291t336 99q138 0 312 -65v-184q-161 93 -320 93q-120 0 -219.5 -82t-160 -240.5t-60.5 -346.5q0 -252 115 -459t363 -207q32 0 81 5v500h-155v155h357v-767z" />
<glyph unicode="H" d="M126 0v1552h202v-668h574v668h201v-1552h-201v729h-574v-729h-202z" />
<glyph unicode="I" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884z" />
<glyph unicode="J" d="M110 34v190q218 -115 365 -115q77 0 140.5 30t101 100.5t37.5 301.5v855h-349v156h551v-1016q0 -248 -56.5 -357t-158.5 -167.5t-261 -58.5q-178 0 -370 81z" />
<glyph unicode="K" d="M157 0v1552h202v-761l577 761h214l-557 -737l635 -815h-253l-616 791v-791h-202z" />
<glyph unicode="L" d="M1057 171v-171h-838v1552h202v-1381h636z" />
<glyph unicode="M" d="M219 0h-163v1552h203l358 -1022l358 1022h198v-1552h-186v989l5 136h-5l-44 -136l-240 -679h-202l-243 679l-39 136h-5l5 -136v-989z" />
<glyph unicode="N" d="M312 0h-186v1552h182l549 -1033l60 -154h5l-5 154v1033h186v-1552h-186l-534 1016l-75 163l4 -161v-1018z" />
<glyph unicode="O" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z" />
<glyph unicode="P" d="M378 566v-566h-202v1552h386q238 0 347 -53.5t167 -156.5t58 -230q0 -149 -78 -278t-217.5 -198.5t-378.5 -69.5h-82zM378 721h87q187 0 278 48.5t140 139.5t49 197q0 134 -87.5 212t-345.5 78h-121v-675z" />
<glyph unicode="Q" d="M746 -29q70 -116 125 -161t143 -67t195 -22h18v-155h-47q-193 0 -281 40t-166 123t-142 226q-183 20 -289.5 116t-168.5 297t-62 432q0 338 135 568t408 230q264 0 403.5 -222t139.5 -601q0 -180 -36.5 -344.5t-126 -289t-248.5 -170.5zM614 1443q-146 0 -243.5 -165.5 t-97.5 -501.5t97.5 -501.5t243.5 -165.5t243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5z" />
<glyph unicode="R" d="M351 659v-659h-202v1552h415q203 0 299 -41.5t148.5 -125.5t52.5 -181q0 -90 -35 -181t-96.5 -162.5t-177.5 -135.5l449 -725h-240l-411 659h-202zM351 815h283q95 52 141.5 106t70.5 115t24 122q0 109 -79.5 173.5t-288.5 64.5h-151v-581z" />
<glyph unicode="S" d="M157 33v190q240 -114 436 -114q82 0 157 31.5t113.5 90.5t38.5 128q0 81 -53 151.5t-199 155.5l-102 59l-103 59q-272 161 -272 400q0 175 121.5 294.5t379.5 119.5q166 0 321 -48v-173q-171 66 -333 66q-129 0 -208.5 -68t-79.5 -164q0 -95 61 -158t156 -116l78 -47 l97 -59l82 -48q255 -156 255 -392q0 -180 -131 -309t-420 -129q-92 0 -175.5 15.5t-219.5 64.5z" />
<glyph unicode="T" d="M513 0v1381h-465v171h1133v-171h-466v-1381h-202z" />
<glyph unicode="U" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993z" />
<glyph unicode="V" d="M1003 1552h194l-478 -1552h-205l-481 1552h213l337 -1084l44 -158l39 157z" />
<glyph unicode="W" d="M208 0l-180 1552h184l106 -945l14 -157h5l20 157l163 945h184l186 -983l19 -150h5l12 151l117 982h158l-188 -1552h-191l-200 1052l-21 158h-5l-19 -158l-180 -1052h-189z" />
<glyph unicode="X" d="M258 0h-210l454 811l-410 741h229l297 -535l304 535h211l-410 -726l458 -826h-233l-341 619z" />
<glyph unicode="Y" d="M514 0v718l-462 834h229l345 -616l344 616h207l-461 -834v-718h-202z" />
<glyph unicode="Z" d="M122 0v171l737 1225h-714v156h947v-156l-736 -1225h751v-171h-985z" />
<glyph unicode="[" d="M355 -372v2017h807v-156h-621v-1706h621v-155h-807z" />
<glyph unicode="\" d="M1014 -47l-981 1645h177l987 -1645h-183z" />
<glyph unicode="]" d="M874 1645v-2017h-807v155h621v1706h-621v156h807z" />
<glyph unicode="^" d="M614 1552l543 -1087h-171l-372 747l-372 -747h-171z" />
<glyph unicode="_" d="M71 -155v155h1086v-155h-1086z" />
<glyph unicode="`" d="M832 1288h-170l-342 326h216z" />
<glyph unicode="a" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237z" />
<glyph unicode="b" d="M327 866q86 140 205 211t219 71q140 0 252 -121t112 -367q0 -194 -74.5 -346.5t-198.5 -241t-307 -88.5q-52 0 -160 11q-16 2 -48 5h-186v1614h186v-748zM327 645v-479q101 -26 186 -26q169 0 284.5 132.5t115.5 362.5q0 167 -63 251t-143 84q-87 0 -191.5 -88 t-188.5 -237z" />
<glyph unicode="c" d="M1095 32q-187 -63 -356 -63q-168 0 -298.5 77.5t-203.5 210t-73 301.5q0 254 165.5 422t399.5 168q173 0 366 -65v-179q-195 89 -349 89q-102 0 -192 -50.5t-139 -157.5t-49 -220q0 -151 94.5 -288t296.5 -137q61 0 120 8.5t218 62.5v-179z" />
<glyph unicode="d" d="M901 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5v497h187v-1614h-187v251zM901 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5t142.5 -84.5q87 0 192 88 t188 237z" />
<glyph unicode="e" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5z" />
<glyph unicode="f" d="M415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
<glyph unicode="g" d="M901 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-790q0 -282 -7.5 -344.5t-24.5 -126.5q-40 -149 -182.5 -235t-344.5 -86q-203 0 -411 104v188q79 -54 194.5 -95.5t223.5 -41.5 q85 0 161 27t123 78t64 118.5t17 179.5v158zM901 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5t142.5 -84.5q87 0 192 88t188 237z" />
<glyph unicode="h" d="M155 0v1614h186v-741q80 129 193 202t226 73q95 0 173.5 -48.5t109.5 -117.5q25 -53 34 -112.5t9 -245.5v-624h-186v647q0 161 -15.5 212.5t-57 84.5t-90.5 33q-98 0 -210.5 -93t-185.5 -233v-651h-186z" />
<glyph unicode="i" d="M468 0v962h-310v155h496v-962h311v-155h-497zM437 1520q0 63 43 94t81 31q39 0 82 -31t43 -94q0 -62 -43 -93t-82 -31q-38 0 -81 31t-43 93z" />
<glyph unicode="j" d="M172 -438v174q156 -46 263 -46q93 0 158 32.5t101.5 109.5t36.5 268v862h-474v155h660v-982q0 -284 -67 -394.5t-162 -158.5t-260 -48q-119 0 -256 28zM700 1520q0 63 42.5 94t81.5 31t81.5 -31t42.5 -94q0 -62 -42.5 -93t-81.5 -31t-81.5 31t-42.5 93z" />
<glyph unicode="k" d="M205 0v1614h186v-1014l537 517h248l-536 -517l550 -600h-256l-543 600v-600h-186z" />
<glyph unicode="l" d="M455 0v1458h-334v156h520v-1459h349v-155h-535z" />
<glyph unicode="m" d="M71 0v1117h163v-256q77 163 143.5 225t134.5 62q81 0 130.5 -63.5t49.5 -180.5v-60q33 102 79.5 165.5t96.5 101t115 37.5q72 0 123 -61t51 -243v-844h-163v763q0 94 -6 128.5t-24 52.5t-39 18q-52 0 -111.5 -79.5t-121.5 -263.5v-619h-156v762q0 148 -29 174t-52 26 q-51 0 -109.5 -89t-111.5 -228v-645h-163z" />
<glyph unicode="n" d="M155 0v1117h186v-244q80 129 193 202t226 73q99 0 180 -52.5t113.5 -137.5t32.5 -334v-624h-186v647q0 161 -15.5 212.5t-57 84.5t-90.5 33q-98 0 -210.5 -93t-185.5 -233v-651h-186z" />
<glyph unicode="o" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116z" />
<glyph unicode="p" d="M327 866q86 140 205 211t219 71q140 0 252 -121t112 -367q0 -194 -74.5 -346.5t-198.5 -241t-307 -88.5q-52 0 -160 11q-16 2 -48 5v-434h-186v1551h186v-251zM327 645v-479q101 -26 186 -26q169 0 284.5 132.5t115.5 362.5q0 167 -63 251t-143 84q-87 0 -191.5 -88 t-188.5 -237z" />
<glyph unicode="q" d="M901 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-1551h-187v685zM901 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5t142.5 -84.5q87 0 192 88 t188 237z" />
<glyph unicode="r" d="M250 0v1117h186v-244q87 138 199.5 206.5t250.5 68.5q101 0 202 -31v-403h-179v255q-47 8 -74 8q-104 0 -204 -82t-195 -246v-649h-186z" />
<glyph unicode="s" d="M168 59v197q112 -73 237 -102.5t212 -29.5q141 0 203 45.5t62 113.5q0 45 -29 77t-144 79l-64 26l-129 51q-208 81 -262.5 149.5t-54.5 166.5q0 138 106.5 227t345.5 89q179 0 339 -52v-169q-184 66 -346 66q-118 0 -184.5 -41.5t-66.5 -103.5q0 -60 57.5 -96t186.5 -83 l126 -46q173 -63 243 -137t70 -185q0 -145 -111.5 -238.5t-356.5 -93.5q-214 0 -440 90z" />
<glyph unicode="t" d="M1089 45q-131 -55 -190 -65.5t-114 -10.5q-117 0 -214 45t-146.5 133t-49.5 272v450h-279v155h279v450h186v-450h497v-155h-497v-447q0 -135 32 -190.5t85.5 -81.5t126.5 -26q135 0 284 85v-164z" />
<glyph unicode="u" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186z" />
<glyph unicode="v" d="M518 0l-485 1117h204l383 -884l391 884h186l-489 -1117h-190z" />
<glyph unicode="w" d="M202 0l-182 1117h173l106 -680l28 -158l27 158l178 680h167l201 -680l35 -158l23 158l107 680h143l-181 -1117h-174l-214 719l-34 158h-5l-31 -157l-186 -720h-181z" />
<glyph unicode="x" d="M271 0h-215l439 585l-410 532h238l291 -375l283 375h211l-388 -514l461 -603h-239l-340 445z" />
<glyph unicode="y" d="M566 45l-516 1072h205l411 -838l344 838h187l-433 -1038q-137 -329 -260.5 -437t-319.5 -108q-85 0 -152 15v164q77 -24 147 -24q90 0 160 35t128 124t82 154z" />
<glyph unicode="z" d="M133 0v171l685 791h-669v155h915v-155l-690 -791h713v-171h-954z" />
<glyph unicode="{" d="M547 636q93 -49 136.5 -96t65 -96.5t21.5 -113.5q0 -57 -20 -149l-25 -114q-20 -93 -20 -138q0 -61 47.5 -103.5t195.5 -42.5h155v-155h-157q-274 0 -353 88t-79 199q0 59 15 127l18 80l17 87l12 53q7 37 7 72q0 93 -62.5 159t-220.5 66h-89v155h89q156 0 219.5 65 t63.5 162q0 36 -7 70l-12 52l-17 87l-18 80q-15 69 -15 128q0 110 79 198.5t353 88.5h157v-156h-155q-147 0 -195 -42.5t-48 -104.5q0 -44 20 -137l25 -114q20 -92 20 -149q0 -64 -21.5 -113.5t-65 -96.5t-136.5 -96z" />
<glyph unicode="|" d="M533 -47v1645h163v-1645h-163z" />
<glyph unicode="}" d="M682 636q-93 49 -136.5 96t-64.5 96.5t-21 113.5q0 57 19 149l25 114q20 93 20 138q0 61 -47.5 103.5t-195.5 42.5h-155v156h157q274 0 353.5 -88.5t79.5 -198.5q0 -60 -16 -128l-18 -80l-17 -87l-12 -52q-7 -38 -7 -73q0 -92 62.5 -158t220.5 -66h89v-155h-89 q-156 0 -219.5 -65.5t-63.5 -162.5q0 -35 7 -69l12 -53l17 -87l18 -80q16 -69 16 -128q0 -111 -79.5 -198.5t-353.5 -87.5h-157v155h155q148 0 195.5 42.5t47.5 104.5q0 44 -20 137l-25 114q-19 92 -19 149q0 64 21 113.5t64.5 96.5t136.5 96z" />
<glyph unicode="~" d="M56 403v18q0 131 77.5 227.5t208.5 96.5q33 0 64.5 -6.5t71.5 -22t120 -60.5l121 -67q111 -61 181 -61q74 0 109.5 53.5t35.5 116.5v16h128v-16q0 -167 -94.5 -246.5t-200.5 -79.5q-99 0 -262 93l-102 59q-116 66 -187 66q-40 0 -74.5 -21t-55.5 -67t-21 -81v-18h-120z " />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa1;" d="M700 659l46 -1109h-248l47 1109h155zM615 1148q56 0 99.5 -43t43.5 -100q0 -58 -43.5 -101t-99.5 -43q-57 0 -100.5 43t-43.5 101q0 57 43.5 100t100.5 43z" />
<glyph unicode="&#xa2;" d="M607 -155v346q-149 18 -255.5 96t-170 200.5t-63.5 278.5t59 277t163.5 201t266.5 109v354h155v-354q166 -19 287 -56v-179q-36 21 -80 37t-93 29t-114 19v-866q80 9 123 21t130 52q12 6 34 16v-180q-149 -49 -287 -55v-346h-155zM607 345v850q-154 -48 -220.5 -165 t-66.5 -265q0 -126 60 -249.5t227 -170.5z" />
<glyph unicode="&#xa3;" d="M141 0v171q93 21 136.5 62.5t66 121t22.5 202.5v211h-225v155h225v69q0 266 51 380t145 170t225 56q124 0 262 -58v-180q-158 83 -284 83q-57 0 -109.5 -37.5t-78 -114.5t-25.5 -289v-79h326v-155h-326v-117q0 -187 -22 -284.5t-128 -195.5h709v-171h-970z" />
<glyph unicode="&#xa4;" d="M1042 1381l115 -101l-184 -212q73 -102 89 -164.5t16 -129.5q0 -68 -16 -131.5t-89 -165.5l184 -211l-115 -95l-185 206q-91 -48 -142.5 -57.5t-100.5 -9.5t-100.5 9.5t-142.5 57.5l-185 -206l-115 95l184 211q-73 102 -89 165.5t-16 131.5q0 67 16 129.5t89 164.5 l-184 212l115 101l185 -211q88 54 143.5 62.5t99.5 8.5t99.5 -8.5t143.5 -62.5zM614 465q119 0 213.5 86.5t94.5 218.5q0 86 -41.5 160.5t-116.5 115t-150 40.5t-150 -40.5t-116.5 -115t-41.5 -160.5q0 -132 94.5 -218.5t213.5 -86.5z" />
<glyph unicode="&#xa5;" d="M522 0v248h-326v140h326v194h-326v139h317l-461 831h205l367 -642l368 642h185l-469 -831h318v-139h-318v-194h318v-140h-318v-248h-186z" />
<glyph unicode="&#xa7;" d="M149 -301v201q102 -55 218.5 -86t210.5 -31q149 0 228.5 61t79.5 131q0 58 -39.5 101.5t-170.5 117.5l-147 83q-196 110 -276.5 209t-80.5 208q0 163 145 296q-64 48 -96.5 109.5t-32.5 136.5q0 97 55.5 180t156.5 132.5t258 49.5q148 0 337 -57v-178q-61 32 -164.5 56 t-181.5 24q-136 0 -198 -54t-62 -120q0 -35 17.5 -66t52.5 -59q69 -55 126 -89l63 -35l149 -88q193 -114 249.5 -200.5t56.5 -190.5q0 -164 -144 -297q92 -76 110.5 -136t18.5 -106q0 -94 -66.5 -187.5t-178.5 -140t-272 -46.5q-220 0 -422 71zM833 319q100 80 100 186 q0 72 -64.5 140.5t-148.5 116.5l-94 53l-184 105q-58 -66 -71 -106.5t-13 -77.5q0 -81 55 -143.5t253 -176.5z" />
<glyph unicode="&#xa8;" d="M397 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xa9;" d="M615 -47q-194 0 -323 101t-209.5 291t-80.5 431q0 232 74.5 418t206 295t332.5 109q194 0 323.5 -102t209.5 -291t80 -429q0 -241 -80.5 -431t-209.5 -291t-323 -101zM615 78q128 0 240 80.5t180.5 252.5t68.5 365q0 192 -69 365t-181 253t-239 80q-130 0 -243.5 -83.5 t-179.5 -255t-66 -359.5q0 -195 70 -369t181 -251.5t238 -77.5zM894 433v-152q-90 -33 -214 -33q-131 0 -232.5 70.5t-161 190t-59.5 266.5q0 146 57.5 269t151 191t229.5 68q102 0 229 -32v-159q-38 12 -83 20t-79.5 12.5t-57.5 4.5q-127 0 -201.5 -103t-74.5 -273 q0 -187 87.5 -286t214.5 -99q82 0 194 45z" />
<glyph unicode="&#xaa;" d="M840 1060q-58 -76 -155 -122t-184 -46q-112 0 -201 73.5t-89 224.5q0 118 58.5 209.5t157 145t247.5 53.5q45 0 129 -5l36 -3h140v-476q0 -49 5.5 -94.5t41.5 -111.5h-155q-20 58 -31 152zM839 1208l-1 255q-78 11 -147 11q-136 0 -230.5 -72t-94.5 -201q0 -89 50 -133 t118 -44q72 0 159 52t146 132z" />
<glyph unicode="&#xab;" d="M626 481v155l384 419l113 -109l-312 -387l312 -399l-113 -98zM153 481v155l384 419l112 -109l-311 -387l311 -399l-112 -98z" />
<glyph unicode="&#xac;" d="M1157 621v-466h-155v310h-931v156h1086z" />
<glyph unicode="&#xad;" d="M227 551v155h776v-155h-776z" />
<glyph unicode="&#xae;" d="M615 -47q-194 0 -323 101t-209.5 291t-80.5 431q0 232 74.5 418t206 295t332.5 109q194 0 323.5 -102t209.5 -291t80 -429q0 -241 -80.5 -431t-209.5 -291t-323 -101zM615 78q128 0 240 80.5t180.5 252.5t68.5 365q0 192 -69 365t-181 253t-239 80q-130 0 -243.5 -83.5 t-179.5 -255t-66 -359.5q0 -195 70 -369t181 -251.5t238 -77.5zM494 718v-379h-139v914h220q176 0 238.5 -64.5t62.5 -146.5q0 -75 -42 -151.5t-132 -127.5l236 -424h-166l-196 379h-82zM494 829h116q64 36 95.5 82.5t31.5 104.5q0 59 -41.5 93t-156.5 34h-45v-314z" />
<glyph unicode="&#xaf;" d="M335 1288v124h559v-124h-559z" />
<glyph unicode="&#xb0;" d="M615 1055q-114 0 -193 80.5t-79 190.5q0 113 80.5 192.5t191.5 79.5t191 -79.5t80 -192.5q0 -110 -79 -190.5t-192 -80.5zM615 1148q75 0 126.5 54t51.5 124q0 73 -52.5 126t-125.5 53q-74 0 -126.5 -53t-52.5 -126q0 -70 51.5 -124t127.5 -54z" />
<glyph unicode="&#xb1;" d="M1157 931v-155h-465v-466h-156v466h-465v155h465v465h156v-465h465zM1157 155v-155h-1086v155h1086z" />
<glyph unicode="&#xb2;" d="M1088 0h-939v171q0 66 27 141.5t103 169.5t161 181l106 108q32 33 140 153t142.5 184t34.5 126q0 100 -80 154.5t-180 54.5q-57 0 -127.5 -13t-123.5 -30.5t-172 -71.5v165q126 60 252.5 82.5t208.5 22.5q121 0 222.5 -39.5t151 -122.5t49.5 -177q0 -105 -63.5 -215 t-239.5 -283l-114 -113l-96 -94q-91 -92 -147 -178t-62 -205h746v-171z" />
<glyph unicode="&#xb3;" d="M145 28v196q229 -116 397 -116q154 0 254.5 93.5t100.5 240.5q0 148 -110.5 241t-375.5 93h-103v155h143q195 0 282 87.5t87 194.5q0 97 -71 163.5t-218 66.5q-165 0 -355 -93v177q190 71 348 71q283 0 390.5 -111.5t107.5 -254.5q0 -106 -57 -199t-210 -166 q135 -40 204 -98t104.5 -137t35.5 -177q0 -218 -161.5 -360t-417.5 -142q-74 0 -161.5 11t-213.5 64z" />
<glyph unicode="&#xb4;" d="M320 1288l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xb5;" d="M1076 1117v-1117h-186v242q-76 -142 -175 -207.5t-196 -65.5q-34 0 -71.5 8t-65.5 20.5t-74 49.5v-419h-186v1489h186v-649q0 -189 59 -263t147 -74t170.5 65.5t205.5 261.5v659h186z" />
<glyph unicode="&#xb6;" d="M552 -372v1055q-235 24 -350 150.5t-115 290.5q0 112 56 215t156.5 158t344.5 55h537v-156h-163v-1768h-155v1768h-155v-1768h-156z" />
<glyph unicode="&#xb8;" d="M685 0l-73 -131q107 -21 140 -65.5t33 -92.5q0 -55 -44 -100.5t-138 -45.5q-83 0 -159 28v89q58 -31 119 -31q35 0 63 21t28 44q0 68 -186 87l109 197h108z" />
<glyph unicode="&#xb9;" d="M568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
<glyph unicode="&#xba;" d="M614 884q-218 0 -326 107t-108 250q0 144 108 250.5t326 106.5q219 0 327 -106.5t108 -250.5q0 -143 -108 -250t-327 -107zM614 1008q124 0 202 60t78 173t-78 173t-202 60q-123 0 -201 -60t-78 -173t78 -173t201 -60z" />
<glyph unicode="&#xbb;" d="M602 636v-155l-383 -419l-113 109l312 388l-312 398l113 98zM1076 636v-155l-384 -419l-113 109l312 388l-312 398l113 98z" />
<glyph unicode="&#xbc;" horiz-adv-x="3687" d="M3165 0v434h-659v156l659 962h187v-962h287v-156h-287v-434h-187zM3165 590v680l-461 -680h461zM1395 -47h-164l1061 1645h165zM568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
<glyph unicode="&#xbd;" horiz-adv-x="3687" d="M3546 0h-939v171q0 66 27 141.5t103 169.5t161 181l106 108q32 33 140 153t142.5 184t34.5 126q0 100 -80 154.5t-180 54.5q-57 0 -127.5 -13t-123.5 -30.5t-172 -71.5v165q126 60 252.5 82.5t208.5 22.5q121 0 222.5 -39.5t151 -122.5t49.5 -177q0 -105 -63.5 -215 t-239.5 -283l-114 -113l-96 -94q-91 -92 -147 -178t-62 -205h746v-171zM1395 -47h-164l1061 1645h165zM568 155v1198q-84 -67 -163 -114t-217 -96v168q219 93 380 241h186v-1397h373v-155h-939v155h380z" />
<glyph unicode="&#xbe;" horiz-adv-x="3687" d="M3165 0v434h-659v156l659 962h187v-962h287v-156h-287v-434h-187zM3165 590v680l-461 -680h461zM1395 -47h-164l1061 1645h165zM145 28v196q229 -116 397 -116q154 0 254.5 93.5t100.5 240.5q0 148 -110.5 241t-375.5 93h-103v155h143q195 0 282 87.5t87 194.5 q0 97 -71 163.5t-218 66.5q-165 0 -355 -93v177q190 71 348 71q283 0 390.5 -111.5t107.5 -254.5q0 -106 -57 -199t-210 -166q135 -40 204 -98t104.5 -137t35.5 -177q0 -218 -161.5 -360t-417.5 -142q-74 0 -161.5 11t-213.5 64z" />
<glyph unicode="&#xbf;" d="M828 659v-35q0 -82 -14 -137.5t-54 -115t-119 -143.5l-62 -67q-17 -18 -52 -61l-66 -83q-83 -104 -83 -180q0 -70 60 -124t194 -54q87 0 178 23t212 91v-179q-186 -91 -388 -91q-224 0 -341 92t-117 237q0 144 151 300l67 68l77 80l72 73q39 45 68.5 101.5t29.5 158.5v46 h187zM725 853q-59 0 -101 42.5t-42 101.5t42 101t101 42q58 0 101 -41.5t43 -101.5t-43 -102t-101 -42z" />
<glyph unicode="&#xc0;" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM869 1722h-170l-342 326h216z" />
<glyph unicode="&#xc1;" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM357 1722l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xc2;" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xc3;" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM422 1722h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17 q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
<glyph unicode="&#xc4;" d="M227 0h-194l478 1552h205l481 -1552h-213l-106 341h-546zM380 496h453l-187 589l-44 156l-39 -156zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z " />
<glyph unicode="&#xc5;" d="M716 1552l481 -1552h-213l-106 341h-546l-105 -341h-194l478 1552q-42 31 -63 69.5t-21 85.5q0 75 54.5 130.5t131.5 55.5t131.5 -55t54.5 -131q0 -46 -20.5 -85t-62.5 -70zM380 496h453l-187 589l-44 156l-39 -156zM520 1707q0 -38 27.5 -65.5t65.5 -27.5t65.5 27.5 t27.5 65.5t-27.5 65.5t-65.5 27.5t-65.5 -28t-27.5 -65z" />
<glyph unicode="&#xc6;" d="M638 0v372h-314l-152 -372h-170l636 1552h543v-156h-357v-535h342v-155h-342v-535h357v-171h-543zM381 512h257v622z" />
<glyph unicode="&#xc7;" d="M1088 1534v-184q-161 93 -320 93q-120 0 -219.5 -82t-160.5 -240.5t-61 -344.5q0 -189 63 -349t161 -239.5t217 -79.5q158 0 320 93v-183q-128 -46 -192 -56.5t-144 -10.5l-45 -82q107 -21 140 -65.5t33 -92.5q0 -55 -44 -100.5t-138 -45.5q-83 0 -159 28v89 q58 -31 119 -31q35 0 63 21t28 44q0 68 -186 87l88 160q-194 49 -309.5 164.5t-169.5 269t-54 357.5q0 403 187.5 624t470.5 221q138 0 312 -65z" />
<glyph unicode="&#xc8;" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM879 1722h-170l-342 326h216z" />
<glyph unicode="&#xc9;" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM367 1722l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xca;" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xcb;" d="M1041 171v-171h-838v1552h822v-156h-620v-527h558v-155h-558v-543h636zM405 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM840 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xcc;" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM871 1722h-170l-342 326h216z" />
<glyph unicode="&#xcd;" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM359 1722l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xce;" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xcf;" d="M172 0v155h341v1241h-341v156h884v-156h-341v-1241h341v-155h-884zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xd1;" d="M312 0h-186v1552h182l549 -1033l60 -154h5l-5 154v1033h186v-1552h-186l-534 1016l-75 163l4 -161v-1018zM422 1722h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28 l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
<glyph unicode="&#xd2;" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M871 1722h-170l-342 326h216z" />
<glyph unicode="&#xd3;" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M359 1722l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xd4;" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xd5;" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M414 1722h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
<glyph unicode="&#xd6;" d="M614 -47q-264 0 -403.5 222.5t-139.5 600.5q0 377 139.5 599.5t403.5 222.5q265 0 404 -222.5t139 -599.5q0 -378 -139 -600.5t-404 -222.5zM614 109q146 0 243.5 165.5t97.5 501.5t-97.5 501.5t-243.5 165.5t-243.5 -165.5t-97.5 -501.5t97.5 -501.5t243.5 -165.5z M397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xd8;" d="M209 -109h-138l148 276q-63 100 -90 189.5t-42.5 198.5t-15.5 230q0 398 147.5 605.5t390.5 207.5q54 0 111.5 -11.5t102.5 -30.5t108 -68l93 172h133l-142 -273q61 -103 87 -185t40.5 -201.5t14.5 -235.5q0 -249 -66.5 -436t-180 -281.5t-306.5 -94.5q-82 0 -143.5 19 t-154.5 97zM321 360l525 969q-62 73 -119.5 93.5t-112.5 20.5q-154 0 -247.5 -174.5t-93.5 -479.5q0 -48 3 -146q3 -99 11.5 -150t33.5 -133zM911 1195l-521 -970q53 -66 108.5 -91t110.5 -25q174 0 260 184.5t86 483.5q0 52 -3 138t-10.5 140.5t-30.5 139.5z" />
<glyph unicode="&#xd9;" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM871 1722h-170l-342 326h216z" />
<glyph unicode="&#xda;" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM359 1722l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xdb;" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM615 1890l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xdc;" d="M126 1552h202v-1019q0 -201 33.5 -274.5t103 -112t154.5 -38.5q90 0 160.5 41.5t104 130t33.5 332.5v940h186v-1013q0 -217 -64.5 -339.5t-168.5 -184.5t-262 -62q-146 0 -257 54t-168 162t-57 390v993zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88 t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xdd;" d="M530 1720l296 326h216l-342 -326h-170zM514 0v718l-462 834h229l345 -616l344 616h207l-461 -834v-718h-202z" />
<glyph unicode="&#xdf;" d="M130 0v1122q0 198 57.5 303.5t161 162.5t249.5 57q191 0 276.5 -89.5t85.5 -187.5q0 -62 -35 -121.5t-138 -148.5l-68 -58q-20 -17 -60 -55.5t-40 -78.5q0 -28 12 -48t71 -63l64 -47l126 -87q106 -72 176.5 -157t70.5 -200q0 -146 -113 -240.5t-289 -94.5q-38 0 -91 3.5 t-82.5 7.5t-84.5 20v185q60 -26 102 -36.5t84 -17.5t70 -7q50 0 105 18t83.5 58.5t28.5 82.5q0 62 -48.5 122t-162.5 136l-120 80q-92 62 -144 121.5t-52 133.5q0 55 29.5 108t130.5 146l59 55q48 44 81 87.5t33 90.5q0 65 -62 95.5t-122 30.5q-69 0 -127.5 -33.5 t-94.5 -102t-36 -231.5v-1122h-186z" />
<glyph unicode="&#xe0;" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM898 1288h-170l-342 326h216z" />
<glyph unicode="&#xe1;" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM480 1288l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xe2;" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM703 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xe3;" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM457 1288h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
<glyph unicode="&#xe4;" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM454 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM889 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xe5;" d="M889 251q-85 -140 -204.5 -211t-219.5 -71q-140 0 -251.5 121t-111.5 367q0 194 74 346.5t198 241t307 88.5q53 0 160 -11q16 -2 48 -5h187v-789q0 -202 42 -328h-194q-22 92 -35 251zM889 472v479q-99 26 -184 26q-172 0 -286.5 -133t-114.5 -362q0 -166 62.5 -250.5 t142.5 -84.5q87 0 192 88t188 237zM657 1381q39 0 66 27.5t27 65.5t-27 65.5t-66 27.5q-38 0 -65.5 -27.5t-27.5 -65.5t27.5 -65.5t65.5 -27.5zM657 1288q-78 0 -132 56t-54 130q0 75 54.5 130.5t131.5 55.5q78 0 132 -55.5t54 -130.5q0 -74 -54 -130t-132 -56z" />
<glyph unicode="&#xe6;" d="M592 226q-52 -130 -120 -193.5t-132 -63.5q-112 0 -194 144t-82 370q0 200 55.5 349.5t148 232.5t198.5 83q35 0 74.5 -7.5t71 -19t79.5 -44.5q73 54 113 62.5t71 8.5q127 0 209 -113.5t82 -449.5v-50h-404v-83q0 -148 22.5 -208.5t64.5 -90t94 -29.5q101 0 223 79v-170 q-141 -64 -254 -64q-74 0 -136 25.5t-107.5 76.5t-76.5 155zM576 470v489q-24 17 -47 25.5t-45 8.5q-117 0 -175.5 -165t-58.5 -365q0 -118 33 -203q32 -82 80 -82h4q105 7 209 292zM762 667h217v32q0 176 -27 235t-79 59q-55 0 -83 -73.5t-28 -220.5v-32z" />
<glyph unicode="&#xe7;" d="M702 -131q108 -21 141 -65.5t33 -92.5q0 -55 -44.5 -100.5t-137.5 -45.5q-83 0 -159 28v89q58 -31 118 -31q36 0 63.5 21t27.5 44q0 68 -185 87l93 169q-165 28 -272 112t-161.5 196.5t-54.5 266.5q0 272 169 436.5t396 164.5q173 0 366 -65v-179q-195 89 -349 89 q-102 0 -192 -50.5t-139 -157.5t-49 -220q0 -151 94.5 -288t296.5 -137q61 0 120 8.5t218 62.5v-179q-156 -56 -338 -66z" />
<glyph unicode="&#xe8;" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM910 1288h-170l-342 326h216z" />
<glyph unicode="&#xe9;" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM445 1288l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xea;" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM654 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xeb;" d="M1084 74q-223 -106 -422 -106q-151 0 -270 75t-190.5 214.5t-71.5 298.5q0 153 68 294t190 219.5t272 78.5q199 0 319.5 -142t120.5 -438v-40h-770q0 -116 48.5 -212t127.5 -144t180 -48q180 0 398 120v-170zM341 667h557v27q0 137 -67 218t-179 81q-113 0 -195.5 -82.5 t-115.5 -243.5zM450 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM885 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xec;" d="M467 0v962h-310v155h496v-962h311v-155h-497zM816 1288h-170l-342 326h216z" />
<glyph unicode="&#xed;" d="M467 0v962h-310v155h496v-962h311v-155h-497zM304 1288l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xee;" d="M467 0v962h-310v155h496v-962h311v-155h-497zM562 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xef;" d="M467 0v962h-310v155h496v-962h311v-155h-497zM344 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM779 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xf1;" d="M157 0v1117h186v-244q80 129 193 202t226 73q99 0 180 -52.5t113.5 -137.5t32.5 -334v-624h-186v647q0 161 -15.5 212.5t-57 84.5t-90.5 33q-98 0 -210.5 -93t-185.5 -233v-651h-186zM430 1288h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52 q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
<glyph unicode="&#xf2;" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM871 1288h-170l-342 326h216z" />
<glyph unicode="&#xf3;" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM359 1288l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xf4;" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM615 1456l-140 -168h-155l233 326h124l233 -326 h-156z" />
<glyph unicode="&#xf5;" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM414 1288h-125q0 132 51.5 194t129.5 62 q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
<glyph unicode="&#xf6;" d="M615 -31q-240 0 -384 167.5t-144 422.5t144 422t384 167q239 0 383 -167t144 -422t-144 -422.5t-383 -167.5zM615 124q149 0 237 116t88 319q0 202 -88 318t-237 116q-150 0 -238 -116t-88 -318q0 -203 88 -319t238 -116zM397 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36 t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xf7;" d="M614 776q-57 0 -100 43t-43 100q0 58 43 101t100 43t100.5 -43t43.5 -101q0 -57 -43.5 -100t-100.5 -43zM1157 621v-156h-1086v156h1086zM614 23q-57 0 -100 43t-43 101t43 100.5t100 42.5t100.5 -42.5t43.5 -100.5t-43.5 -101t-100.5 -43z" />
<glyph unicode="&#xf8;" d="M236 -93h-149l150 221q-150 189 -150 436q0 243 135 413.5t391 170.5q50 0 100 -7t89.5 -20t95.5 -46l94 135h150l-149 -215q149 -193 149 -436q0 -237 -132 -413.5t-396 -176.5q-63 0 -123.5 10.5t-158.5 64.5zM341 280l464 663q-89 50 -190 50q-159 0 -242.5 -115.5 t-83.5 -313.5q0 -150 52 -284zM889 845l-465 -668q96 -53 181 -53q183 0 259 122.5t76 307.5q0 160 -51 291z" />
<glyph unicode="&#xf9;" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM873 1288h-170l-342 326h216z" />
<glyph unicode="&#xfa;" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM406 1288l296 326h216l-342 -326h-170z" />
<glyph unicode="&#xfb;" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM617 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#xfc;" d="M1074 1117v-1117h-186v245q-90 -138 -200 -207t-220 -69q-98 0 -179.5 52.5t-113.5 138t-32 333.5v624h186v-647q0 -161 15.5 -212.5t57 -84.5t89.5 -33q98 0 210.5 92.5t186.5 233.5v651h186zM399 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88 t-87.5 -36zM834 1288q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#xfd;" d="M538 1270l296 326h216l-342 -326h-170zM566 45l-516 1072h205l411 -838l344 838h187l-433 -1038q-137 -329 -260.5 -437t-319.5 -108q-85 0 -152 15v164q77 -24 147 -24q90 0 160 35t128 124t82 154z" />
<glyph unicode="&#xff;" d="M582 45l-516 1072h205l411 -838l344 838h187l-433 -1038q-137 -329 -260.5 -437t-319.5 -108q-85 0 -152 15v164q77 -24 147 -24q90 0 160 35t128 124t82 154zM444 1288q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM879 1288q-51 0 -88 36 t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#x131;" d="M467 0v962h-310v155h496v-962h311v-155h-497z" />
<glyph unicode="&#x152;" d="M1184 0h-551v39q-68 -60 -103.5 -65.5t-53.5 -5.5q-115 0 -221.5 94t-162.5 293.5t-56 439.5q0 252 61.5 438.5t164.5 268t217 81.5q33 0 68 -10t86 -60v39h536v-156h-349v-535h333v-155h-333v-535h364v-171zM633 521v501q0 265 -37.5 335.5t-109.5 70.5 q-131 0 -189.5 -184.5t-58.5 -463.5q0 -248 55.5 -452t196.5 -204q70 0 106.5 70.5t36.5 326.5z" />
<glyph unicode="&#x153;" d="M625 135q-59 -111 -124.5 -138.5t-119.5 -27.5q-88 0 -159 63t-113 208.5t-42 329.5q0 217 76.5 397.5t258.5 180.5q80 0 139 -41.5t98 -124.5q44 83 103 124.5t133 41.5q119 0 202.5 -112.5t83.5 -438.5v-62h-404v-61q0 -178 24.5 -236.5t67 -86t92.5 -27.5 q103 0 220 78v-173q-141 -60 -251 -60q-85 0 -155.5 32.5t-129.5 133.5zM571 493v102q0 127 -6.5 178t-24.5 101.5t-52 86.5q-32 32 -70 32h-6q-85 -5 -126 -129t-41 -320q0 -166 39.5 -293t131.5 -127q67 0 111 86t44 283zM757 667h218v33q0 185 -30 239t-77 54 q-48 0 -79.5 -69.5t-31.5 -222.5v-34z" />
<glyph unicode="&#x178;" d="M514 0v718l-462 834h229l345 -616l344 616h207l-461 -834v-718h-202zM397 1722q-51 0 -87.5 36t-36.5 88t37 88t87 36t87 -36t37 -88t-36.5 -88t-87.5 -36zM832 1722q-51 0 -88 36t-37 88t37.5 88t87.5 36t87 -36t37 -88t-37 -88t-87 -36z" />
<glyph unicode="&#x2c6;" d="M615 1456l-140 -168h-155l233 326h124l233 -326h-156z" />
<glyph unicode="&#x2da;" d="M614 1381q39 0 66 27.5t27 65.5t-27 65.5t-66 27.5q-38 0 -65.5 -27.5t-27.5 -65.5t27.5 -65.5t65.5 -27.5zM614 1288q-78 0 -132 56t-54 130q0 75 54.5 130.5t131.5 55.5q78 0 132 -55.5t54 -130.5q0 -74 -54 -130t-132 -56z" />
<glyph unicode="&#x2dc;" d="M414 1288h-125q0 132 51.5 194t129.5 62q62 0 126 -40l42 -25q83 -52 116 -52q60 0 60 117h127q-6 -102 -27 -149t-64.5 -77.5t-95.5 -30.5q-65 0 -141 49l-44 28l-24 17q-34 23 -65 23q-22 0 -44 -23t-22 -93z" />
<glyph unicode="&#x2000;" horiz-adv-x="1024" />
<glyph unicode="&#x2001;" horiz-adv-x="2048" />
<glyph unicode="&#x2002;" horiz-adv-x="1024" />
<glyph unicode="&#x2003;" horiz-adv-x="2048" />
<glyph unicode="&#x2004;" horiz-adv-x="682" />
<glyph unicode="&#x2005;" horiz-adv-x="512" />
<glyph unicode="&#x2006;" horiz-adv-x="341" />
<glyph unicode="&#x2007;" horiz-adv-x="341" />
<glyph unicode="&#x2008;" horiz-adv-x="256" />
<glyph unicode="&#x2009;" horiz-adv-x="409" />
<glyph unicode="&#x200a;" horiz-adv-x="113" />
<glyph unicode="&#x2010;" d="M227 551v155h776v-155h-776z" />
<glyph unicode="&#x2011;" d="M227 551v155h776v-155h-776z" />
<glyph unicode="&#x2012;" d="M227 551v155h776v-155h-776z" />
<glyph unicode="&#x2013;" d="M71 528v155h1086v-155h-1086z" />
<glyph unicode="&#x2014;" d="M71 528v124h1086v-124h-1086z" />
<glyph unicode="&#x2018;" d="M804 1645v-125q-72 -19 -109.5 -54t-60 -89.5t-22.5 -132.5q93 0 137 -52.5t44 -111.5q0 -70 -49 -117.5t-114 -47.5q-84 0 -145 72.5t-61 198.5q0 111 48 208t130.5 166t201.5 85z" />
<glyph unicode="&#x2019;" d="M424 915v125q72 19 109.5 54t60 89.5t22.5 132.5q-93 0 -137 52.5t-44 111.5q0 70 49 117.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -111 -48 -208t-130.5 -166t-201.5 -85z" />
<glyph unicode="&#x201a;" d="M424 -434v124q72 19 109.5 54.5t57 82.5t25.5 139q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84z" />
<glyph unicode="&#x201c;" d="M1049 1645v-125q-72 -19 -109.5 -54t-60 -89.5t-22.5 -132.5q92 0 136.5 -52.5t44.5 -111.5q0 -70 -49 -117.5t-114 -47.5q-85 0 -145.5 72.5t-60.5 198.5q0 111 48 208t130.5 166t201.5 85zM560 1645v-125q-72 -19 -109.5 -54t-60 -89.5t-22.5 -132.5q93 0 137 -52.5 t44 -111.5q0 -70 -49 -117.5t-114 -47.5q-84 0 -145 72.5t-61 198.5q0 111 48 208t130.5 166t201.5 85z" />
<glyph unicode="&#x201d;" d="M180 915v125q72 19 109.5 54t60 89.5t22.5 132.5q-93 0 -137 52.5t-44 111.5q0 70 49 117.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -111 -48 -208t-130.5 -166t-201.5 -85zM669 915v125q71 19 109 54t60.5 89.5t22.5 132.5q-93 0 -137 52.5t-44 111.5q0 70 48.5 117.5 t113.5 47.5q85 0 146 -72.5t61 -198.5q0 -111 -48 -208t-130.5 -166t-201.5 -85z" />
<glyph unicode="&#x201e;" d="M180 -434v124q72 19 109.5 54.5t57 82.5t25.5 139q-93 0 -137 52.5t-44 112.5q0 69 49 116.5t114 47.5q84 0 145 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84zM669 -434v124q71 19 109 54.5t57.5 82.5t25.5 139q-93 0 -137 52.5t-44 112.5 q0 69 48.5 116.5t113.5 47.5q85 0 146 -72.5t61 -198.5q0 -110 -48 -207.5t-130.5 -166.5t-201.5 -84z" />
<glyph unicode="&#x2022;" d="M615 341q-113 0 -211 55t-157 155t-59 217q0 114 57 213.5t157 156.5t213 57q112 0 212 -57t157 -156.5t57 -213.5q0 -117 -59 -217t-157 -155t-210 -55z" />
<glyph unicode="&#x2026;" d="M205 -47q-57 0 -100.5 43t-43.5 101t43.5 100.5t100.5 42.5q56 0 99.5 -42.5t43.5 -100.5t-43.5 -101t-99.5 -43zM614 -47q-57 0 -100 43t-43 101t43 100.5t100 42.5t100.5 -42.5t43.5 -100.5t-43.5 -101t-100.5 -43zM1024 -47q-57 0 -100.5 43t-43.5 101t43.5 100.5 t100.5 42.5t100 -42.5t43 -100.5t-43 -101t-100 -43z" />
<glyph unicode="&#x202f;" horiz-adv-x="409" />
<glyph unicode="&#x2039;" d="M331 484v160l501 473l112 -118l-429 -438l429 -446l-112 -115z" />
<glyph unicode="&#x203a;" d="M898 633v-160l-501 -473l-112 118l429 438l-429 446l112 115z" />
<glyph unicode="&#x2044;" d="M166 -47h-164l1061 1645h165z" />
<glyph unicode="&#x205f;" horiz-adv-x="512" />
<glyph unicode="&#x2122;" d="M225 776v663h-223v113h575v-113h-224v-663h-128zM744 1254v-478h-106v776h125l170 -464l172 464h123v-776h-121v477l-121 -328h-119z" />
<glyph unicode="&#xe000;" horiz-adv-x="1115" d="M0 1115h1115v-1115h-1115v1115z" />
<glyph unicode="&#xfb01;" horiz-adv-x="2458" d="M1697 0v962h-310v155h496v-962h311v-155h-497zM1666 1520q0 63 43 94t81 31q39 0 82 -31t43 -94q0 -62 -43 -93t-82 -31q-38 0 -81 31t-43 93zM415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33 t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
<glyph unicode="&#xfb02;" horiz-adv-x="2458" d="M1684 0v1458h-334v156h520v-1459h349v-155h-535zM415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
<glyph unicode="&#xfb03;" horiz-adv-x="3687" d="M2926 0v962h-310v155h496v-962h311v-155h-497zM2895 1520q0 63 43 94t81 31q39 0 82 -31t43 -94q0 -62 -43 -93t-82 -31q-38 0 -81 31t-43 93zM1644 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33 t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186zM415 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
<glyph unicode="&#xfb04;" horiz-adv-x="3687" d="M2913 0v1458h-334v156h520v-1459h349v-155h-535zM1644 0v869h-248v155h248v52q0 221 50 327t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186zM415 0v869h-248v155h248v52q0 221 50 327 t154.5 174t276.5 68q130 0 264 -27v-177q-145 48 -257 48q-89 0 -157 -33t-106.5 -107.5t-38.5 -252.5v-72h443v-155h-443v-869h-186z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Binary file not shown.

3
fonts/monospace.css Normal file
View File

@ -0,0 +1,3 @@
.crayon-font-monospace * {
font-family: monospace !important;
}

14
fonts/sourcecodepro.css Normal file
View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'source_code_proregular';
src: url('sourcecodepro/sourcecodepro-regular-webfont.eot');
src: url('sourcecodepro/sourcecodepro-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('sourcecodepro/sourcecodepro-regular-webfont.woff') format('woff'),
url('sourcecodepro/sourcecodepro-regular-webfont.ttf') format('truetype'),
url('sourcecodepro/sourcecodepro-regular-webfont.svg#MonacoRegular') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-sourcecodepro * {
font-family: Source Code Pro, 'source_code_proregular', Arial, sans-serif !important;
}

Binary file not shown.

View File

@ -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="source_code_proregular" horiz-adv-x="1228" >
<font-face units-per-em="2048" ascent="1536" descent="-512" />
<missing-glyph horiz-adv-x="500" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="682" />
<glyph unicode=" " />
<glyph unicode="!" d="M465 135q0 70 43 113t106 43t106.5 -43t43.5 -113q0 -72 -43.5 -116t-106.5 -44t-106 44t-43 116zM532 1372h164l-4 -192l-20 -705h-115l-20 705z" />
<glyph unicode="&#x22;" d="M266 1407h226l-5 -225l-51 -461h-114l-52 461zM737 1407h226l-5 -225l-51 -461h-114l-52 461z" />
<glyph unicode="#" d="M178 418v117h178l37 303h-174v118h189l47 375h108l-45 -375h270l48 375h108l-45 -375h164v-118h-178l-37 -303h174v-117h-188l-52 -418h-110l51 418h-270l-52 -418h-110l51 418h-164zM467 535h270l37 303h-270z" />
<glyph unicode="$" d="M174 231l80 117q192 -139 381 -139q118 0 183 49t65 129q0 45 -28 82.5t-73.5 63t-104 51.5t-119.5 47.5t-119.5 52.5t-104 65.5t-73.5 86.5t-28 116q0 128 90.5 211.5t241.5 98.5v270h123v-268q104 -8 180 -48t146 -108l-90 -98q-78 61 -142 88.5t-159 27.5 q-103 0 -164.5 -46t-61.5 -124q0 -45 36 -81.5t93.5 -62.5t127 -51t139 -56.5t127 -70t93.5 -99t36 -136.5q0 -131 -99.5 -219.5t-261.5 -105.5v-299h-123v297q-110 9 -213.5 52.5t-177.5 106.5z" />
<glyph unicode="%" d="M55 997q0 156 79 245t206 89t206 -89t79 -245q0 -157 -79 -248.5t-206 -91.5t-206 91.5t-79 248.5zM57 158l375 385l68 -62l-342 -415zM180 997q0 -115 45 -176t115 -61t115 61t45 176q0 117 -44.5 175.5t-115.5 58.5t-115.5 -58.5t-44.5 -175.5zM604 315q0 156 79 245 t206 89t206 -89t79 -245q0 -157 -79 -248.5t-206 -91.5t-206 91.5t-79 248.5zM729 315q0 -115 45 -176t115 -61t115 61t45 176q0 117 -44.5 175.5t-115.5 58.5t-115.5 -58.5t-44.5 -175.5zM729 862l342 416l100 -92l-374 -385z" />
<glyph unicode="&#x26;" d="M86 348q0 63 20 119.5t58 104.5t78 84t96 77q-90 175 -90 318q0 136 82 226.5t213 90.5q122 0 191 -72.5t69 -193.5q0 -36 -9.5 -71t-22 -62.5t-39 -60t-44.5 -52.5t-56 -52t-56.5 -47t-61.5 -48q129 -206 328 -377q111 159 170 393h155q-78 -282 -217 -481 q122 -94 232 -129l-47 -140q-136 42 -281 154q-161 -154 -367 -154q-178 0 -289.5 104.5t-111.5 268.5zM250 358q0 -110 74 -178.5t184 -68.5q123 0 235 106q-202 180 -342 401q-73 -64 -112 -126t-39 -134zM393 1053q0 -106 62 -236q67 48 108 84.5t72 89.5t31 109 q0 64 -30 105.5t-93 41.5q-69 0 -109.5 -54.5t-40.5 -139.5z" />
<glyph unicode="'" d="M502 1407h225l-4 -225l-51 -461h-115l-51 461z" />
<glyph unicode="(" d="M426 569q0 289 120.5 524t340.5 406l92 -86q-205 -173 -303 -379.5t-98 -464.5t98 -464t303 -379l-92 -86q-220 171 -340.5 405.5t-120.5 523.5z" />
<glyph unicode=")" d="M250 -274q205 173 303 379t98 464t-98 464.5t-303 379.5l92 86q220 -171 340.5 -406t120.5 -524t-120.5 -523.5t-340.5 -405.5z" />
<glyph unicode="*" d="M172 770l33 94l342 -112l18 387h99l18 -387l342 112l33 -94l-332 -143l221 -338l-86 -62l-246 326l-245 -326l-86 62l221 338z" />
<glyph unicode="+" d="M174 612v127h373v400h135v-400h373v-127h-373v-399h-135v399h-373z" />
<glyph unicode="," d="M403 -330q128 58 191.5 140t67.5 202q-12 -4 -39 -4q-69 0 -114.5 40t-45.5 114q0 72 47.5 113.5t116.5 41.5q89 0 136.5 -70t47.5 -192q0 -177 -94 -302t-266 -189z" />
<glyph unicode="-" d="M174 612v127h881v-127h-881z" />
<glyph unicode="." d="M449 147q0 77 47.5 126t117.5 49t118 -49t48 -126q0 -75 -48 -123.5t-118 -48.5t-117.5 48.5t-47.5 123.5z" />
<glyph unicode="/" d="M203 -328l671 1782h152l-672 -1782h-151z" />
<glyph unicode="0" d="M145 657q0 325 124 499.5t345 174.5t345 -174.5t124 -499.5q0 -324 -124.5 -503t-344.5 -179t-344.5 179t-124.5 503zM303 657q0 -271 84 -408.5t227 -137.5t227.5 137.5t84.5 408.5q0 272 -84.5 405.5t-227.5 133.5t-227 -133.5t-84 -405.5zM487 672q0 61 37 98t90 37 t90 -37t37 -98q0 -62 -37 -99.5t-90 -37.5t-90 37.5t-37 99.5z" />
<glyph unicode="1" d="M203 0v139h368v963h-280v108q190 27 323 97h125v-1168h340v-139h-876z" />
<glyph unicode="2" d="M141 1133q95 97 197.5 147.5t232.5 50.5q195 0 310.5 -105.5t115.5 -279.5q0 -60 -18.5 -121.5t-59.5 -127.5t-88 -127t-123 -138.5t-143.5 -141.5t-169.5 -157q164 12 244 12h430v-145h-919v100q127 112 206 184t166.5 157t137.5 144.5t94.5 124t63 119.5t18.5 109 q0 117 -72.5 186.5t-212.5 69.5q-162 0 -313 -158z" />
<glyph unicode="3" d="M117 160l86 110q163 -155 375 -155q136 0 224.5 66t88.5 173q0 260 -475 260v129q220 0 324 67t104 177q0 95 -72.5 151t-193.5 56q-175 0 -322 -133l-90 106q190 164 418 164q190 0 311 -89t121 -243q0 -113 -75 -191t-204 -120v-8q140 -30 232 -117t92 -215 q0 -112 -64.5 -198t-171 -130.5t-237.5 -44.5q-286 0 -471 185z" />
<glyph unicode="4" d="M80 360v113l653 834h180v-811h203v-136h-203v-360h-159v360h-674zM266 496h488v405q3 104 10 232h-10q-23 -36 -70.5 -102t-62.5 -89z" />
<glyph unicode="5" d="M115 154l84 110q77 -70 162.5 -109.5t205.5 -39.5q141 0 236.5 82.5t95.5 216.5t-86.5 210t-234.5 76q-76 0 -133.5 -18.5t-133.5 -60.5l-90 57l43 629h740v-146h-590l-35 -387q122 53 242 53q96 0 176 -24.5t141.5 -73.5t96 -128.5t34.5 -182.5q0 -136 -69.5 -239 t-177.5 -153.5t-236 -50.5q-159 0 -270 49t-201 130z" />
<glyph unicode="6" d="M158 604q0 153 29.5 276.5t80.5 206.5t121.5 138.5t149 80.5t166.5 25q215 0 364 -139l-94 -105q-111 103 -260 103q-65 0 -121.5 -17.5t-107.5 -59t-87.5 -105t-59 -160t-24.5 -219.5q81 80 178 125t193 45q187 0 297.5 -104t110.5 -300q0 -121 -60.5 -218.5 t-160 -149.5t-216.5 -52q-223 0 -361 162.5t-138 466.5zM322 496q19 -188 105.5 -287.5t229.5 -99.5q119 0 198 79.5t79 206.5q0 134 -72 205.5t-207 71.5q-84 0 -171.5 -43.5t-161.5 -132.5z" />
<glyph unicode="7" d="M143 1161v146h947v-105q-172 -196 -267.5 -377.5t-135 -368.5t-48.5 -456h-176q17 372 113.5 628.5t320.5 532.5h-754z" />
<glyph unicode="8" d="M139 334q0 215 281 348v8q-199 124 -199 305q0 149 114 242.5t290 93.5q189 0 297 -96.5t108 -251.5q0 -87 -55.5 -168.5t-143.5 -142.5v-8q60 -30 101 -58t79 -68t57 -93.5t19 -120.5q0 -151 -125.5 -250t-343.5 -99t-348.5 100.5t-130.5 258.5zM293 350 q0 -110 90.5 -180t239.5 -70q143 0 223 63t80 167q0 49 -20.5 88.5t-44 64.5t-81.5 53t-92.5 40.5t-118.5 40.5q-35 12 -53 18q-106 -59 -164.5 -126.5t-58.5 -158.5zM375 995q0 -56 25 -100t76.5 -77.5t106.5 -56t138 -48.5q164 121 164 262q0 101 -69.5 166t-194.5 65 q-109 0 -177.5 -58t-68.5 -153z" />
<glyph unicode="9" d="M137 911q0 121 60.5 218.5t159 149.5t214.5 52q108 0 199 -40t159 -116.5t106 -197.5t38 -275q0 -189 -45 -333t-123 -228t-173.5 -125t-205.5 -41q-212 0 -364 138l94 106q109 -104 260 -104q64 0 120 18t106.5 59.5t87 105t59 160t24.5 218.5q-81 -80 -176.5 -124 t-193.5 -44q-187 0 -296.5 103.5t-109.5 299.5zM297 911q0 -134 71 -205t207 -71q82 0 170 43t164 131q-20 191 -105.5 290t-230.5 99q-119 0 -197.5 -80t-78.5 -207z" />
<glyph unicode=":" d="M449 147q0 77 47.5 126t117.5 49t118 -49t48 -126q0 -75 -48 -123.5t-118 -48.5t-117.5 48.5t-47.5 123.5zM449 881q0 77 47.5 125.5t117.5 48.5t118 -48.5t48 -125.5q0 -75 -48 -123.5t-118 -48.5t-117.5 48.5t-47.5 123.5z" />
<glyph unicode=";" d="M403 -330q128 58 191.5 140t67.5 202q-12 -4 -39 -4q-69 0 -114.5 40t-45.5 114q0 72 47.5 113.5t116.5 41.5q89 0 136.5 -70t47.5 -192q0 -177 -94 -302t-266 -189zM449 881q0 77 47.5 125.5t117.5 48.5t118 -48.5t48 -125.5q0 -75 -48 -123.5t-118 -48.5t-117.5 48.5 t-47.5 123.5z" />
<glyph unicode="&#x3c;" d="M246 616v127l764 519v-162l-617 -416v-8l617 -416v-162z" />
<glyph unicode="=" d="M174 393v127h881v-127h-881zM174 831v127h881v-127h-881z" />
<glyph unicode="&#x3e;" d="M219 98v162l617 416v8l-617 416v162l764 -519v-127z" />
<glyph unicode="?" d="M223 1231q159 166 377 166q171 0 276 -87.5t105 -232.5q0 -56 -20.5 -106.5t-52.5 -88.5t-70.5 -74.5t-75.5 -72t-66.5 -73t-44 -85.5t-6.5 -102h-149q-10 60 2 113.5t39.5 94.5t63 78.5t73.5 72.5t69.5 68.5t51.5 74t20 82.5q0 88 -58 143t-167 55q-148 0 -266 -118z M436 135q0 70 43.5 113t106.5 43t106 -43t43 -113q0 -72 -43 -116t-106 -44t-106.5 44t-43.5 116z" />
<glyph unicode="@" d="M100 512q0 191 46.5 342.5t128 248t190.5 147t237 50.5q137 0 232.5 -65t139.5 -173t44 -249v-608h-102l-15 119h-8q-47 -61 -120.5 -102.5t-149.5 -41.5q-112 0 -188 74t-76 195q0 152 134.5 234.5t405.5 115.5v28q0 103 -30.5 182t-101 129t-173.5 50q-94 0 -177 -43.5 t-147.5 -126.5t-102.5 -215t-38 -297q0 -161 36.5 -292t100.5 -217t150 -132.5t186 -46.5q164 0 289 92l58 -92q-162 -113 -351 -113q-123 0 -230.5 53t-190 152.5t-130 254.5t-47.5 347zM594 453q0 -72 44.5 -113t119.5 -41q113 0 229 131v258q-210 -29 -301.5 -84.5 t-91.5 -150.5z" />
<glyph unicode="A" d="M66 0l452 1343h193l452 -1343h-180l-127 410h-487l-129 -410h-174zM412 547h401l-63 205q-94 301 -134 452h-8q-63 -229 -133 -452z" />
<glyph unicode="B" d="M203 0v1343h381q105 0 187.5 -18t144.5 -56.5t95 -102t33 -150.5q0 -105 -60 -184t-175 -109v-8q150 -24 230.5 -105t80.5 -217q0 -193 -136.5 -293t-369.5 -100h-411zM373 143h217q362 0 362 258q0 122 -90.5 178t-271.5 56h-217v-492zM373 778h182q169 0 245.5 54.5 t76.5 168.5q0 106 -77 152.5t-237 46.5h-190v-422z" />
<glyph unicode="C" d="M133 672q0 319 167.5 507.5t434.5 188.5q112 0 207 -46.5t160 -117.5l-96 -108q-116 123 -271 123q-194 0 -310 -146.5t-116 -396.5q0 -253 116 -402t310 -149q170 0 303 149l97 -104q-168 -195 -416 -195q-124 0 -231.5 48t-186 136t-123.5 220t-45 293z" />
<glyph unicode="D" d="M178 0v1343h332q302 0 462.5 -172.5t160.5 -492.5q0 -322 -160 -500t-455 -178h-340zM348 139h150q227 0 342.5 140t115.5 399q0 256 -115 391t-343 135h-150v-1065z" />
<glyph unicode="E" d="M233 0v1343h832v-143h-659v-422h557v-145h-557v-488h679v-145h-852z" />
<glyph unicode="F" d="M272 0v1343h826v-143h-654v-455h553v-143h-553v-602h-172z" />
<glyph unicode="G" d="M109 672q0 321 165.5 508.5t430.5 187.5q214 0 370 -164l-96 -108q-56 59 -120 91t-154 32q-190 0 -304 -147t-114 -396q0 -256 108.5 -403.5t304.5 -147.5q70 0 133 21.5t101 58.5v350h-268v141h426v-565q-67 -69 -172.5 -112.5t-229.5 -43.5q-258 0 -419.5 187 t-161.5 510z" />
<glyph unicode="H" d="M162 0v1343h172v-563h561v563h172v-1343h-172v633h-561v-633h-172z" />
<glyph unicode="I" d="M195 0v145h333v1055h-333v143h839v-143h-334v-1055h334v-145h-839z" />
<glyph unicode="J" d="M166 199l106 104q55 -88 131.5 -133t157.5 -45q145 0 212 76.5t67 242.5v758h-564v144h734v-916q0 -78 -14 -143.5t-47 -124t-83 -99.5t-126.5 -64.5t-174.5 -23.5q-119 0 -226 56.5t-173 167.5z" />
<glyph unicode="K" d="M201 0v1343h172v-673h6l565 673h195l-426 -509l475 -834h-193l-391 705l-231 -277v-428h-172z" />
<glyph unicode="L" d="M274 0v1343h168v-1198h666v-145h-834z" />
<glyph unicode="M" d="M147 0v1343h209l189 -573l65 -217h8l64 217l190 573h209v-1343h-163v672q0 46 3.5 116.5t7.5 124.5t9.5 133t7.5 101h-6l-76 -262l-192 -529h-123l-189 529l-77 262h-4q28 -268 28 -475v-672h-160z" />
<glyph unicode="N" d="M168 0v1343h188l430 -843l129 -279h5q-1 32 -12 188t-11 238v696h164v-1343h-189l-430 844l-129 278h-4q2 -40 12.5 -190t10.5 -230v-702h-164z" />
<glyph unicode="O" d="M98 678q0 320 142.5 505t373.5 185t373.5 -185t142.5 -505q0 -325 -142.5 -514t-373.5 -189t-373.5 189t-142.5 514zM274 678q0 -256 92.5 -404.5t247.5 -148.5t247.5 148.5t92.5 404.5q0 251 -92.5 396t-247.5 145t-247.5 -145t-92.5 -396z" />
<glyph unicode="P" d="M209 0v1343h405q115 0 203.5 -20.5t156 -66t103 -123t35.5 -185.5q0 -206 -134 -311t-364 -105h-235v-532h-170zM379 672h215q177 0 261.5 67t84.5 209t-83.5 200t-262.5 58h-215v-534z" />
<glyph unicode="Q" d="M102 678q0 322 140 507t372 185t372 -185t140 -507q0 -288 -111.5 -470.5t-301.5 -221.5q35 -86 110 -130t181 -44q50 0 100 20l33 -137q-82 -29 -152 -29q-170 0 -285 86.5t-168 229.5q-198 34 -314 218t-116 478zM276 678q0 -262 91 -411.5t247 -149.5t247 149.5 t91 411.5q0 253 -91 399t-247 146t-247 -146t-91 -399z" />
<glyph unicode="R" d="M205 0v1343h418q469 0 469 -376q0 -152 -80 -248t-221 -133l342 -586h-195l-324 567h-239v-567h-170zM375 707h223q158 0 241 65.5t83 194.5q0 128 -80.5 183.5t-243.5 55.5h-223v-499z" />
<glyph unicode="S" d="M137 174l103 119q78 -78 179.5 -123t213.5 -45q136 0 214.5 59t78.5 154q0 23 -4.5 44t-9.5 37t-19 33t-22 27t-30.5 24.5t-32.5 20.5t-39 20t-39.5 18.5l-45.5 19.5l-192 84q-291 114 -291 346q0 154 124 255t316 101q122 0 230 -45t184 -121l-90 -110 q-143 127 -330 127q-118 0 -189 -53.5t-71 -143.5q0 -27 8.5 -51t18 -41t32.5 -35.5t36.5 -28t47 -25.5t46 -21t50.5 -21l189 -82q68 -28 117.5 -57.5t92.5 -72t65 -100t22 -129.5q0 -164 -129.5 -273.5t-345.5 -109.5q-144 0 -269 52.5t-219 146.5z" />
<glyph unicode="T" d="M86 1200v143h1057v-143h-443v-1200h-172v1200h-442z" />
<glyph unicode="U" d="M162 508v835h172v-839q0 -199 75.5 -289t206.5 -90t208 90.5t77 288.5v839h166v-835q0 -275 -121 -404t-330 -129q-102 0 -183 29.5t-142.5 92t-95 166.5t-33.5 245z" />
<glyph unicode="V" d="M88 1343h180l217 -725q14 -46 57.5 -199.5t71.5 -244.5h9q44 143 129 444l215 725h174l-426 -1343h-199z" />
<glyph unicode="W" d="M20 1346h193l98 -844q22 -212 27 -312h6q32 170 66 310l131 499h164l126 -499q28 -105 66 -310h8q11 178 25 310l94 846h184l-196 -1346h-213l-131 541q-37 151 -50 241h-6q-27 -161 -47 -241l-131 -541h-209z" />
<glyph unicode="X" d="M111 0l401 694l-375 649h189l188 -344q52 -91 109 -194h8q64 134 96 194l184 344h181l-375 -657l401 -686h-188l-203 362q-22 39 -119 216h-8q-57 -120 -108 -216l-201 -362h-180z" />
<glyph unicode="Y" d="M78 1343h180l203 -399q23 -47 73.5 -151t79.5 -162h9q28 58 81 163t76 152l195 397h176l-451 -864v-479h-172v479z" />
<glyph unicode="Z" d="M133 0v102l750 1100h-684v144h895v-103l-752 -1098h762v-145h-971z" />
<glyph unicode="[" d="M461 -311v1761h567v-96h-432v-1569h432v-96h-567z" />
<glyph unicode="\" d="M203 1454h151l672 -1782h-152z" />
<glyph unicode="]" d="M201 -215h432v1569h-432v96h567v-1761h-567v96z" />
<glyph unicode="^" d="M227 582l314 790h147l313 -790h-147l-135 360l-101 272h-8l-100 -272l-135 -360h-148z" />
<glyph unicode="_" d="M123 -141h983v-146h-983v146z" />
<glyph unicode="`" d="M336 1477l119 114l290 -344l-88 -84z" />
<glyph unicode="a" d="M166 258q0 168 168 255t553 118q-3 112 -66 181t-198 69q-157 0 -349 -119l-65 115q89 59 206 101t236 42q199 0 301.5 -109.5t102.5 -300.5v-610h-137l-15 135h-6q-207 -160 -393 -160q-144 0 -241 76.5t-97 206.5zM330 270q0 -80 62.5 -119.5t156.5 -39.5 q161 0 338 147v262q-208 -17 -333 -52t-174.5 -82.5t-49.5 -115.5z" />
<glyph unicode="b" d="M190 0v1458h168v-397l-6 -193h6q68 70 157.5 111t176.5 41q198 0 306 -136t108 -370q0 -124 -37 -227t-99.5 -170.5t-143.5 -104.5t-171 -37q-72 0 -155.5 36.5t-153.5 99.5h-6l-14 -111h-136zM358 233q66 -59 138.5 -87.5t132.5 -28.5q133 0 218 107t85 288 q0 172 -68.5 269.5t-212.5 97.5q-143 0 -293 -150v-496z" />
<glyph unicode="c" d="M164 496q0 122 44.5 222.5t120.5 165.5t176.5 100.5t213.5 35.5q212 0 362 -146l-84 -108q-131 115 -272 115q-172 0 -279.5 -106.5t-107.5 -278.5q0 -170 105.5 -275.5t277.5 -105.5q161 0 307 125l76 -109q-177 -156 -395 -156q-156 0 -279 60.5t-194.5 180 t-71.5 280.5z" />
<glyph unicode="d" d="M123 496q0 118 37.5 218t100 166t144 103t170.5 37q162 0 297 -129h7l-9 184v383h168v-1458h-139l-14 131h-6q-67 -68 -152 -112t-172 -44q-198 0 -315 137.5t-117 383.5zM297 498q0 -179 77.5 -280t215.5 -101q146 0 280 149v496q-125 117 -262 117q-131 0 -221 -107 t-90 -274z" />
<glyph unicode="e" d="M139 500q0 118 42 217.5t112.5 164.5t162 101.5t191.5 36.5q213 0 334 -127t121 -340q0 -48 -8 -102h-785q15 -164 120.5 -252t266.5 -88q155 0 303 94l62 -111q-177 -119 -385 -119q-151 0 -271.5 61t-193 182t-72.5 282zM313 582h635q-10 151 -88.5 228t-208.5 77 q-127 0 -221 -81t-117 -224z" />
<glyph unicode="f" d="M211 858v127l285 10v84q0 189 100.5 296.5t300.5 107.5q147 0 287 -58l-39 -127q-106 48 -232 48q-251 0 -251 -261v-90h417v-137h-417v-858h-166v858h-285z" />
<glyph unicode="g" d="M147 -182q0 60 42.5 118t121.5 103v8q-102 56 -102 164q0 48 31.5 98t87.5 88v9q-55 41 -89 107t-34 151q0 158 114 257t277 99q80 0 147 -25h412v-137h-258q84 -88 84 -201q0 -156 -109.5 -249t-275.5 -93q-87 0 -168 37q-78 -49 -78 -114q0 -115 207 -115h223 q195 0 287 -55t92 -179q0 -144 -153.5 -246t-399.5 -102q-218 0 -338.5 72.5t-120.5 204.5zM293 -166q0 -79 84 -124.5t241 -45.5q167 0 271 59.5t104 139.5q0 68 -54 94.5t-173 26.5h-195q-94 0 -151 16q-127 -69 -127 -166zM367 664q0 -105 66.5 -170.5t162.5 -65.5 q97 0 163 65.5t66 170.5q0 103 -66 168t-163 65q-96 0 -162.5 -65.5t-66.5 -167.5z" />
<glyph unicode="h" d="M190 0v1458h168v-397l-10 -236h6q85 93 174.5 144t198.5 51q344 0 344 -402v-618h-168v596q0 143 -54 210.5t-175 67.5q-85 0 -153.5 -41.5t-162.5 -138.5v-694h-168z" />
<glyph unicode="i" d="M184 858v137h631v-995h-168v858h-463zM578 1335q0 58 38.5 94.5t96.5 36.5t96.5 -36.5t38.5 -94.5q0 -59 -38.5 -95t-96.5 -36t-96.5 36t-38.5 95z" />
<glyph unicode="j" d="M113 -377l55 125q113 -55 227 -55q142 0 197 67t55 203v895h-463v137h631v-1020q0 -97 -20.5 -170t-67 -131t-129.5 -88t-201 -30q-147 0 -284 67zM578 1335q0 58 38.5 94.5t96.5 36.5t96.5 -36.5t38.5 -94.5q0 -59 -38.5 -95t-96.5 -36t-96.5 36t-38.5 95z" />
<glyph unicode="k" d="M217 0v1458h168v-987h8l537 524h192l-397 -391l451 -604h-189l-366 502l-236 -232v-270h-168z" />
<glyph unicode="l" d="M166 1321v137h508v-1136q0 -105 51.5 -156t144.5 -51q88 0 187 45l43 -125q-76 -32 -132.5 -46t-133.5 -14q-159 0 -243.5 91.5t-84.5 267.5v987h-340z" />
<glyph unicode="m" d="M119 0v995h135l14 -131h4q42 76 94.5 116t133.5 40q145 0 188 -172q47 87 100 129.5t134 42.5q105 0 163 -79.5t58 -227.5v-713h-168v700q0 174 -107 174q-49 0 -82 -34.5t-77 -118.5v-721h-156v700q0 88 -24 131t-78 43q-51 0 -88.5 -36.5t-75.5 -116.5v-721h-168z" />
<glyph unicode="n" d="M190 0v995h140l14 -170h8q87 93 176.5 144t198.5 51q344 0 344 -402v-618h-168v596q0 143 -54 210.5t-175 67.5q-85 0 -153.5 -41.5t-162.5 -138.5v-694h-168z" />
<glyph unicode="o" d="M123 496q0 122 40 222.5t107.5 165.5t156 100.5t187.5 35.5t187.5 -35.5t156.5 -100.5t108 -165.5t40 -222.5q0 -120 -40 -220t-108 -165t-156.5 -100.5t-187.5 -35.5t-187.5 35.5t-156 100.5t-107.5 165t-40 220zM297 496q0 -170 87.5 -275.5t229.5 -105.5t230 105.5 t88 275.5q0 172 -88 278.5t-230 106.5t-229.5 -106.5t-87.5 -278.5z" />
<glyph unicode="p" d="M190 -420v1415h140l14 -127h6q72 68 163.5 110t180.5 42q198 0 305 -136t107 -372q0 -123 -37 -226t-99.5 -170t-144.5 -104t-172 -37q-71 0 -151.5 34.5t-145.5 94.5h-6l8 -188v-336h-168zM358 233q66 -59 138 -87.5t129 -28.5q136 0 221.5 106.5t85.5 288.5 q0 172 -68.5 269.5t-212.5 97.5q-143 0 -293 -150v-496z" />
<glyph unicode="q" d="M123 496q0 118 37.5 218t100 166t144 103t170.5 37q88 0 161.5 -33.5t146.5 -101.5h6l14 110h135v-1415h-168v363l9 184h-7q-66 -68 -149 -110t-170 -42q-196 0 -313 137.5t-117 383.5zM297 498q0 -179 77.5 -280t215.5 -101q146 0 280 149v496q-125 117 -262 117 q-131 0 -221 -107t-90 -274z" />
<glyph unicode="r" d="M299 0v995h139l15 -235h6q80 123 194.5 191.5t249.5 68.5q116 0 197 -41l-39 -145q-56 20 -92 27t-92 7q-247 0 -410 -284v-584h-168z" />
<glyph unicode="s" d="M145 131l78 111q191 -136 432 -136q120 0 186 44.5t66 111.5q0 31 -11 53.5t-43 46t-95 44t-162 40.5q-197 40 -293 110t-96 181q0 125 108.5 204t305.5 79q108 0 215 -36t186 -91l-82 -109q-153 105 -334 105q-119 0 -174 -40.5t-55 -103.5q0 -62 64.5 -96.5 t224.5 -68.5q164 -36 254.5 -79.5t123.5 -96t33 -132.5q0 -127 -118 -212t-324 -85q-137 0 -264 43.5t-226 112.5z" />
<glyph unicode="t" d="M141 858v127l287 10l23 320h139v-320h489v-137h-489v-473q0 -140 56 -206t196 -66q119 0 239 45l37 -123q-164 -60 -311 -60q-207 0 -296 107t-89 305v471h-281z" />
<glyph unicode="u" d="M158 377v618h170v-596q0 -144 53.5 -211t175.5 -67q84 0 154 42.5t155 141.5v690h168v-995h-137l-14 174h-9q-170 -199 -370 -199q-346 0 -346 402z" />
<glyph unicode="v" d="M104 995h170l230 -565q32 -77 112 -293h9q6 15 45 124.5t63 168.5l230 565h161l-411 -995h-189z" />
<glyph unicode="w" d="M16 995h168l119 -577q30 -155 45 -275h8q11 88 58 275l123 516h168l118 -516q6 -24 17.5 -68t18 -71t14.5 -65t12 -71h8q5 31 20 126t25 149l119 577h155l-213 -995h-217l-114 475q-29 125 -50 295h-8q-23 -180 -49 -295l-110 -475h-218z" />
<glyph unicode="x" d="M131 0l379 516l-350 479h186l158 -219q64 -97 117 -168h8q47 70 112 172l150 215h178l-354 -493l381 -502h-185l-174 229q-114 158 -131 181h-8q-82 -118 -123 -181l-164 -229h-180z" />
<glyph unicode="y" d="M100 995h170l244 -551q17 -39 37.5 -87t46 -108.5t39.5 -92.5h8q92 247 107 288l217 551h159l-438 -1077q-130 -346 -422 -346q-73 0 -131 20l35 134q51 -15 90 -15q188 0 273 213l30 74z" />
<glyph unicode="z" d="M145 0v90l682 768h-606v137h848v-90l-684 -768h702v-137h-942z" />
<glyph unicode="{" d="M246 516v107q297 2 297 159q0 63 -9.5 193.5t-9.5 202.5q0 153 89 212.5t290 59.5h125v-96h-106q-104 0 -159.5 -20t-75 -58.5t-19.5 -108.5q0 -57 6 -181t6 -189q0 -102 -41 -154t-145 -70v-8q104 -18 145 -69.5t41 -153.5q0 -71 -6 -190.5t-6 -180.5q0 -70 20 -108.5 t75 -58t159 -19.5h106v-96h-125q-201 0 -290 59.5t-89 212.5q0 77 9.5 202.5t9.5 192.5q0 158 -297 160z" />
<glyph unicode="|" d="M539 -512v2048h151v-2048h-151z" />
<glyph unicode="}" d="M203 -215h104q152 0 204 41t52 145q0 61 -6 180.5t-6 190.5q0 102 40.5 153.5t143.5 69.5v8q-103 18 -143.5 69.5t-40.5 154.5q0 65 6 189t6 181q0 104 -52 145.5t-204 41.5h-104v96h125q199 0 288 -59.5t89 -212.5q0 -72 -9.5 -202.5t-9.5 -193.5q0 -157 297 -159v-107 q-297 -2 -297 -160q0 -67 9.5 -192.5t9.5 -202.5q0 -153 -89 -212.5t-288 -59.5h-125v96z" />
<glyph unicode="~" d="M156 569q96 256 278 256q54 0 108.5 -27t91 -59t81.5 -59t84 -27q52 0 92.5 38t73.5 138l108 -49q-96 -254 -278 -254q-54 0 -108.5 27t-91 59t-81.5 59t-84 27q-52 0 -92.5 -38.5t-73.5 -137.5z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa1;" d="M465 862q0 70 43 114t106 44t106.5 -44t43.5 -114q0 -71 -43 -114t-107 -43t-106.5 42.5t-42.5 114.5zM532 -377l5 193l20 704h115l20 -704l4 -193h-164z" />
<glyph unicode="&#xa2;" d="M231 635q0 205 115.5 333t296.5 152v217h105v-211q150 -8 268 -118l-82 -107q-87 81 -186 86v-704q112 8 215 96l73 -107q-134 -117 -288 -129v-211h-105v213q-187 21 -299.5 149.5t-112.5 340.5zM397 635q0 -136 65 -227t181 -117v686q-115 -26 -180.5 -117t-65.5 -225z " />
<glyph unicode="&#xa3;" d="M158 584v106l202 8q-2 6 -11.5 31.5t-12 33.5t-10 30.5t-10.5 33.5t-8 30.5t-7 33t-4 30.5t-2 33q0 173 117 275t313 102q221 0 360 -153l-98 -97q-109 109 -254 109q-131 0 -203.5 -66t-72.5 -174q0 -40 10.5 -88t19.5 -76t31 -88h387v-114h-354q12 -55 12 -115 q0 -104 -35.5 -177t-111.5 -138v-9h671v-145h-927v102q124 56 189 153t65 216q0 50 -17 113h-239z" />
<glyph unicode="&#xa4;" d="M119 262l172 174q-74 99 -74 238q0 138 72 239l-170 177l90 92l178 -185q98 76 227 76q126 0 228 -76l178 185l90 -92l-172 -177q74 -99 74 -239q0 -134 -74 -238l172 -174l-90 -92l-180 182q-96 -78 -226 -78q-126 0 -227 78l-178 -182zM373 674q0 -121 69.5 -198 t171.5 -77t172 77t70 198t-70 197.5t-172 76.5t-171.5 -76.5t-69.5 -197.5z" />
<glyph unicode="&#xa5;" d="M109 1307h174l188 -351q20 -39 66.5 -131.5t74.5 -144.5h9q109 214 143 276l188 351h168l-381 -656h332v-96h-375v-133h375v-98h-375v-324h-168v324h-370v98h370v133h-370v96h329z" />
<glyph unicode="&#xa6;" d="M539 389h151v-901h-151v901zM539 635v901h151v-901h-151z" />
<glyph unicode="&#xa7;" d="M186 702q0 169 187 267q-64 71 -64 166q0 112 81 189t228 77q178 0 330 -117l-82 -108q-124 94 -239 94q-82 0 -123 -36.5t-41 -92.5q0 -39 25 -72t65.5 -55.5t92.5 -47t106.5 -46.5t106.5 -54t92.5 -68.5t65.5 -92.5t25 -123q0 -93 -47.5 -156.5t-138.5 -110.5 q62 -68 62 -165q0 -122 -92.5 -201.5t-237.5 -79.5q-111 0 -206.5 38.5t-160.5 106.5l103 92q58 -53 120 -79.5t144 -26.5q81 0 128.5 40.5t47.5 100.5q0 47 -32 84t-83 63.5t-112.5 51.5t-123 56t-112.5 69.5t-83 99t-32 137.5zM332 713q0 -51 26.5 -91.5t75.5 -70.5 t99 -52.5t117 -51.5t110 -54q70 31 103.5 70.5t33.5 105.5q0 52 -26 93.5t-75 72t-98.5 53t-117 52t-109.5 53.5q-139 -71 -139 -180z" />
<glyph unicode="&#xa8;" d="M303 1319q0 48 32 81.5t81 33.5t80.5 -33.5t31.5 -81.5q0 -50 -31.5 -82.5t-80.5 -32.5t-81 32.5t-32 82.5zM700 1319q0 48 32 81.5t81 33.5t81 -33.5t32 -81.5q0 -50 -32 -82.5t-81 -32.5t-81 32.5t-32 82.5z" />
<glyph unicode="&#xa9;" d="M61 662q0 154 42.5 281.5t116.5 213.5t175.5 133t218.5 47t218.5 -47t175.5 -133t116.5 -213.5t42.5 -281.5q0 -308 -157 -496.5t-396 -188.5t-396 188.5t-157 496.5zM156 662q0 -269 126.5 -434t331.5 -165q206 0 332.5 165.5t126.5 433.5t-126.5 429.5t-332.5 161.5 t-332 -161.5t-126 -429.5zM299 662q0 173 99.5 280t238.5 107q120 0 213 -97l-70 -80q-71 64 -137 64q-93 0 -151 -76.5t-58 -197.5q0 -134 55 -213.5t146 -79.5q83 0 166 69l61 -86q-106 -96 -231 -96q-142 0 -237 110.5t-95 295.5z" />
<glyph unicode="&#xaa;" d="M334 981q0 107 108.5 166t339.5 78q-7 153 -153 153q-103 0 -217 -69l-52 88q144 86 291 86q130 0 196 -72t66 -203v-399h-108l-8 78h-4q-121 -94 -242 -94q-94 0 -155.5 51t-61.5 137zM461 993q0 -51 34.5 -75.5t88.5 -24.5q92 0 198 82v170q-171 -17 -246 -54t-75 -98z " />
<glyph unicode="&#xab;" d="M168 434v164l313 328l80 -72l-260 -338l260 -340l-80 -70zM639 434v164l313 328l80 -72l-260 -338l260 -340l-80 -70z" />
<glyph unicode="&#xac;" d="M174 612v127h881v-526h-135v399h-746z" />
<glyph unicode="&#xad;" d="M174 612v127h881v-127h-881z" />
<glyph unicode="&#xae;" d="M229 1057q0 177 111 290t274 113q162 0 273.5 -113t111.5 -290t-112 -290.5t-273 -113.5q-163 0 -274 113.5t-111 290.5zM309 1057q0 -145 87 -236.5t218 -91.5t217.5 91.5t86.5 236.5q0 144 -87 236.5t-217 92.5t-217.5 -93t-87.5 -236zM465 854v416h156q71 0 116 -32 t45 -101q0 -37 -21.5 -69t-55.5 -44l94 -170h-94l-72 143h-84v-143h-84zM549 1063h53q42 0 66 18.5t24 51.5q0 67 -86 67h-57v-137z" />
<glyph unicode="&#xaf;" d="M342 1231v117h545v-117h-545z" />
<glyph unicode="&#xb0;" d="M358 1139q0 118 75 191t181 73q107 0 182.5 -73t75.5 -191q0 -115 -76 -187.5t-182 -72.5t-181 72.5t-75 187.5zM461 1139q0 -72 43 -119t110 -47q69 0 112.5 47t43.5 119q0 75 -43.5 122.5t-112.5 47.5q-68 0 -110.5 -47.5t-42.5 -122.5z" />
<glyph unicode="&#xb1;" d="M174 0v127h881v-127h-881zM174 623v127h373v389h135v-389h373v-127h-373v-363h-135v363h-373z" />
<glyph unicode="&#xb2;" d="M299 1477q46 71 124 113t165 42q131 0 208.5 -67.5t77.5 -192.5q0 -25 -4.5 -49t-16.5 -49.5t-22.5 -45.5t-33.5 -48t-38.5 -46t-48.5 -50t-51 -49.5t-59.5 -56t-62.5 -58.5h376v-111h-581l-8 76q17 14 50 42q208 177 270 243q99 105 99 184q0 77 -47.5 122.5 t-126.5 45.5q-55 0 -105 -32t-87 -85z" />
<glyph unicode="&#xb3;" d="M291 940l86 68q38 -58 96.5 -88.5t126.5 -30.5q77 0 128.5 38t51.5 103q0 144 -268 144v81q117 0 177.5 40.5t60.5 105.5q0 57 -44.5 92t-119.5 35q-50 0 -99.5 -26.5t-85.5 -71.5l-77 69q111 133 280 133q116 0 196.5 -59t80.5 -156q0 -71 -39.5 -118t-122.5 -78 q89 -18 140.5 -69t51.5 -128q0 -108 -87.5 -174t-215.5 -66q-102 0 -186 42.5t-131 113.5z" />
<glyph unicode="&#xb4;" d="M483 1247l291 344l119 -114l-322 -314z" />
<glyph unicode="&#xb5;" d="M172 -383v1378h168v-596q0 -139 51 -208.5t160 -69.5q87 0 159 44.5t144 170.5v659h170q-12 -536 -12 -807q0 -73 57 -73q19 0 37 4l22 -127q-39 -17 -96 -17q-80 0 -119 48t-45 165h-4q-121 -208 -315 -208q-75 0 -129.5 23.5t-91.5 84.5q3 -322 14 -471h-170z" />
<glyph unicode="&#xb6;" d="M147 907q0 117 36 203t102.5 136t151.5 73.5t192 23.5h88v-880h-66q-111 0 -201.5 26.5t-159 79.5t-106 139t-37.5 199zM827 -164v1507h166v-1507h-166z" />
<glyph unicode="&#xb7;" d="M449 711q0 77 47.5 125.5t117.5 48.5t118 -48.5t48 -125.5q0 -75 -48 -123.5t-118 -48.5t-117.5 48.5t-47.5 123.5z" />
<glyph unicode="&#xb8;" d="M420 -381q125 9 174 32.5t49 69.5q0 41 -36 64t-122 35l82 196h111l-53 -147q75 -18 112 -51.5t37 -93.5q0 -171 -338 -187z" />
<glyph unicode="&#xb9;" d="M358 809v111h252v520h-215v84q86 12 139.5 30.5t100.5 53.5h106v-688h234v-111h-617z" />
<glyph unicode="&#xba;" d="M291 1137q0 159 94 252.5t229 93.5q137 0 230.5 -93t93.5 -253q0 -157 -94 -250.5t-230 -93.5q-135 0 -229 93.5t-94 250.5zM426 1137q0 -107 50.5 -172.5t137.5 -65.5t138 65.5t51 172.5q0 108 -51 173.5t-138 65.5t-137.5 -65.5t-50.5 -173.5z" />
<glyph unicode="&#xbb;" d="M197 176l260 340l-260 338l79 72l314 -328v-164l-314 -328zM668 176l260 340l-260 338l80 72l313 -328v-164l-313 -328z" />
<glyph unicode="&#xbc;" d="M57 158l375 385l68 -62l-342 -415zM137 1153v86q106 16 195 68h102v-625h-129v471h-168zM627 152v63l231 434l94 -41l-198 -370h204v198h117v-198h103v-86h-103v-152h-117v152h-331zM729 862l342 416l100 -92l-374 -385z" />
<glyph unicode="&#xbd;" d="M57 158l375 385l68 -62l-342 -415zM137 1153v86q106 16 195 68h102v-625h-129v471h-168zM643 524q106 125 242 125q111 0 174 -55t63 -156q0 -49 -35 -104.5t-70.5 -91t-117.5 -110.5l-8 -8t-8 -7t-9 -8h279v-109h-489v74q181 137 255 211t74 137q0 56 -32.5 88.5 t-90.5 32.5q-81 0 -147 -86zM729 862l342 416l100 -92l-374 -385z" />
<glyph unicode="&#xbe;" d="M63 768l66 80q32 -38 82 -63t104 -25q59 0 93 23.5t34 72.5q0 105 -196 105v77q82 0 124 28t42 77q0 41 -28 64.5t-85 23.5q-36 0 -77 -19.5t-72 -50.5l-62 78q39 42 102.5 67t133.5 25q97 0 157 -46t60 -126q0 -58 -27.5 -94.5t-87.5 -58.5q68 -15 106.5 -55.5 t38.5 -102.5q0 -88 -70 -139.5t-177 -51.5q-71 0 -140.5 29.5t-120.5 81.5zM109 158l374 385l68 -62l-342 -415zM627 152v63l231 434l94 -41l-198 -370h204v198h117v-198h103v-86h-103v-152h-117v152h-331zM780 862l342 416l101 -92l-375 -385z" />
<glyph unicode="&#xbf;" d="M248 -82q0 56 20.5 106.5t52.5 88.5t70.5 74.5t75.5 72t66.5 73t44 85.5t6.5 102h149q10 -60 -2 -113.5t-39.5 -94.5t-63 -78.5t-73.5 -72t-69.5 -68t-51.5 -74t-20 -82.5q0 -88 58 -142.5t167 -54.5q149 0 266 117l101 -93q-158 -165 -377 -165q-171 0 -276 87t-105 232 zM494 862q0 70 43 114t106 44t106.5 -44t43.5 -114q0 -71 -43 -114t-107 -43q-63 0 -106 42.5t-43 114.5z" />
<glyph unicode="&#xc0;" d="M66 0l452 1343h193l452 -1343h-180l-127 410h-487l-129 -410h-174zM362 1663l97 113l289 -263l-74 -86zM412 547h401l-63 205q-94 301 -134 452h-8q-63 -229 -133 -452z" />
<glyph unicode="&#xc1;" d="M66 0l452 1343h193l452 -1343h-180l-127 410h-487l-129 -410h-174zM412 547h401l-63 205q-94 301 -134 452h-8q-63 -229 -133 -452zM481 1513l289 263l96 -113l-311 -236z" />
<glyph unicode="&#xc2;" d="M66 0l452 1343h193l452 -1343h-180l-127 410h-487l-129 -410h-174zM311 1485l215 231h176l216 -231l-74 -53l-226 190h-8l-225 -190zM412 547h401l-63 205q-94 301 -134 452h-8q-63 -229 -133 -452z" />
<glyph unicode="&#xc3;" d="M66 0l452 1343h193l452 -1343h-180l-127 410h-487l-129 -410h-174zM252 1470q6 117 61.5 184.5t147.5 67.5q52 0 98.5 -22.5t75 -50t63.5 -50t66 -22.5q39 0 65 35t33 100l115 -8q-6 -118 -61.5 -185t-147.5 -67q-52 0 -98.5 22.5t-75 50t-63.5 50t-66 22.5 q-39 0 -65.5 -35t-32.5 -100zM412 547h401l-63 205q-94 301 -134 452h-8q-63 -229 -133 -452z" />
<glyph unicode="&#xc4;" d="M66 0l452 1343h193l452 -1343h-180l-127 410h-487l-129 -410h-174zM324 1569q0 45 29.5 73.5t74.5 28.5t73.5 -28.5t28.5 -73.5q0 -46 -29 -75.5t-73 -29.5t-74 30t-30 75zM412 547h401l-63 205q-94 301 -134 452h-8q-63 -229 -133 -452zM698 1569q0 45 29 73.5t74 28.5 t74.5 -28.5t29.5 -73.5t-29.5 -75t-74.5 -30q-44 0 -73.5 29.5t-29.5 75.5z" />
<glyph unicode="&#xc5;" d="M66 0l452 1343h193l452 -1343h-180l-127 410h-487l-129 -410h-174zM412 547h401l-63 205q-94 301 -134 452h-8q-63 -229 -133 -452zM416 1616q0 84 55.5 135t142.5 51q86 0 142.5 -51.5t56.5 -134.5q0 -82 -56.5 -133t-142.5 -51q-87 0 -142.5 50.5t-55.5 133.5z M508 1616q0 -52 30 -81.5t76 -29.5q44 0 74.5 29.5t30.5 81.5q0 50 -31 80t-74 30q-46 0 -76 -29.5t-30 -80.5z" />
<glyph unicode="&#xc6;" d="M-2 0l541 1343h653v-143h-387v-420h301v-145h-301v-490h405v-145h-561v391h-323l-150 -391h-178zM379 528h270v680h-6q-29 -78 -87 -223.5t-83 -212.5z" />
<glyph unicode="&#xc7;" d="M133 672q0 319 167.5 507.5t434.5 188.5q112 0 207 -46.5t160 -117.5l-96 -108q-116 123 -271 123q-194 0 -310 -146.5t-116 -396.5q0 -253 116 -402t310 -149q170 0 303 149l97 -104q-149 -176 -369 -193l-39 -108q75 -18 112.5 -51.5t37.5 -93.5q0 -171 -338 -187 l-17 82q125 9 174 32.5t49 69.5q0 41 -35.5 64t-121.5 35l65 160q-231 24 -375.5 208t-144.5 484z" />
<glyph unicode="&#xc8;" d="M233 0v1343h832v-143h-659v-422h557v-145h-557v-488h679v-145h-852zM426 1663l96 113l289 -263l-74 -86z" />
<glyph unicode="&#xc9;" d="M233 0v1343h832v-143h-659v-422h557v-145h-557v-488h679v-145h-852zM545 1513l289 263l96 -113l-312 -236z" />
<glyph unicode="&#xca;" d="M233 0v1343h832v-143h-659v-422h557v-145h-557v-488h679v-145h-852zM375 1485l215 231h176l215 -231l-74 -53l-225 190h-8l-225 -190z" />
<glyph unicode="&#xcb;" d="M233 0v1343h832v-143h-659v-422h557v-145h-557v-488h679v-145h-852zM387 1569q0 45 30 73.5t75 28.5t73.5 -28.5t28.5 -73.5q0 -46 -29 -75.5t-73 -29.5q-45 0 -75 30t-30 75zM762 1569q0 45 28.5 73.5t73.5 28.5t75 -28.5t30 -73.5t-30 -75t-75 -30q-44 0 -73 29.5 t-29 75.5z" />
<glyph unicode="&#xcc;" d="M195 0v145h333v1055h-333v143h839v-143h-334v-1055h334v-145h-839zM362 1663l97 113l289 -263l-74 -86z" />
<glyph unicode="&#xcd;" d="M195 0v145h333v1055h-333v143h839v-143h-334v-1055h334v-145h-839zM481 1513l289 263l96 -113l-311 -236z" />
<glyph unicode="&#xce;" d="M195 0v145h333v1055h-333v143h839v-143h-334v-1055h334v-145h-839zM311 1485l215 231h176l216 -231l-74 -53l-226 190h-8l-225 -190z" />
<glyph unicode="&#xcf;" d="M195 0v145h333v1055h-333v143h839v-143h-334v-1055h334v-145h-839zM324 1569q0 45 29.5 73.5t74.5 28.5t73.5 -28.5t28.5 -73.5q0 -46 -29 -75.5t-73 -29.5t-74 30t-30 75zM698 1569q0 45 29 73.5t74 28.5t74.5 -28.5t29.5 -73.5t-29.5 -75t-74.5 -30q-44 0 -73.5 29.5 t-29.5 75.5z" />
<glyph unicode="&#xd0;" d="M25 643v115l153 12v573h332q302 0 462.5 -172.5t160.5 -492.5q0 -322 -160 -500t-455 -178h-340v643h-153zM348 139h150q226 0 341 140t115 399q0 256 -114.5 391t-341.5 135h-150v-434h295v-127h-295v-504z" />
<glyph unicode="&#xd1;" d="M168 0v1343h188l430 -843l129 -279h5q-1 32 -12 188t-11 238v696h164v-1343h-189l-430 844l-129 278h-4q2 -40 12.5 -190t10.5 -230v-702h-164zM272 1470q6 117 61.5 184.5t147.5 67.5q52 0 98.5 -22.5t75 -50t63.5 -50t66 -22.5q39 0 65.5 35t33.5 100l114 -8 q-6 -118 -61.5 -185t-147.5 -67q-52 0 -98.5 22.5t-75 50t-63.5 50t-66 22.5q-39 0 -65.5 -35t-32.5 -100z" />
<glyph unicode="&#xd2;" d="M98 678q0 320 142.5 505t373.5 185t373.5 -185t142.5 -505q0 -325 -142.5 -514t-373.5 -189t-373.5 189t-142.5 514zM274 678q0 -256 92.5 -404.5t247.5 -148.5t247.5 148.5t92.5 404.5q0 251 -92.5 396t-247.5 145t-247.5 -145t-92.5 -396zM362 1663l97 113l289 -263 l-74 -86z" />
<glyph unicode="&#xd3;" d="M98 678q0 320 142.5 505t373.5 185t373.5 -185t142.5 -505q0 -325 -142.5 -514t-373.5 -189t-373.5 189t-142.5 514zM274 678q0 -256 92.5 -404.5t247.5 -148.5t247.5 148.5t92.5 404.5q0 251 -92.5 396t-247.5 145t-247.5 -145t-92.5 -396zM481 1513l289 263l96 -113 l-311 -236z" />
<glyph unicode="&#xd4;" d="M98 678q0 320 142.5 505t373.5 185t373.5 -185t142.5 -505q0 -325 -142.5 -514t-373.5 -189t-373.5 189t-142.5 514zM274 678q0 -256 92.5 -404.5t247.5 -148.5t247.5 148.5t92.5 404.5q0 251 -92.5 396t-247.5 145t-247.5 -145t-92.5 -396zM311 1485l215 231h176 l216 -231l-74 -53l-226 190h-8l-225 -190z" />
<glyph unicode="&#xd5;" d="M98 678q0 320 142.5 505t373.5 185t373.5 -185t142.5 -505q0 -325 -142.5 -514t-373.5 -189t-373.5 189t-142.5 514zM252 1470q6 117 61.5 184.5t147.5 67.5q52 0 98.5 -22.5t75 -50t63.5 -50t66 -22.5q39 0 65 35t33 100l115 -8q-6 -118 -61.5 -185t-147.5 -67 q-52 0 -98.5 22.5t-75 50t-63.5 50t-66 22.5q-39 0 -65.5 -35t-32.5 -100zM274 678q0 -256 92.5 -404.5t247.5 -148.5t247.5 148.5t92.5 404.5q0 251 -92.5 396t-247.5 145t-247.5 -145t-92.5 -396z" />
<glyph unicode="&#xd6;" d="M98 678q0 320 142.5 505t373.5 185t373.5 -185t142.5 -505q0 -325 -142.5 -514t-373.5 -189t-373.5 189t-142.5 514zM274 678q0 -256 92.5 -404.5t247.5 -148.5t247.5 148.5t92.5 404.5q0 251 -92.5 396t-247.5 145t-247.5 -145t-92.5 -396zM324 1569q0 45 29.5 73.5 t74.5 28.5t73.5 -28.5t28.5 -73.5q0 -46 -29 -75.5t-73 -29.5t-74 30t-30 75zM698 1569q0 45 29 73.5t74 28.5t74.5 -28.5t29.5 -73.5t-29.5 -75t-74.5 -30q-44 0 -73.5 29.5t-29.5 75.5z" />
<glyph unicode="&#xd7;" d="M209 350l315 326l-315 323l90 93l315 -326l316 326l90 -93l-315 -323l315 -326l-90 -92l-316 328l-315 -328z" />
<glyph unicode="&#xd8;" d="M74 8l137 201q-113 184 -113 469q0 320 142.5 505t373.5 185q180 0 312 -117l106 158l115 -74l-131 -192q114 -177 114 -465q0 -325 -142.5 -514t-373.5 -189q-183 0 -315 123l-111 -164zM274 678q0 -177 48 -307l509 745q-89 103 -217 103q-155 0 -247.5 -145 t-92.5 -396zM393 236q88 -111 221 -111q155 0 247.5 148.5t92.5 404.5q0 183 -49 305z" />
<glyph unicode="&#xd9;" d="M162 508v835h172v-839q0 -199 75.5 -289t206.5 -90t208 90.5t77 288.5v839h166v-835q0 -275 -121 -404t-330 -129q-102 0 -183 29.5t-142.5 92t-95 166.5t-33.5 245zM362 1663l97 113l289 -263l-74 -86z" />
<glyph unicode="&#xda;" d="M162 508v835h172v-839q0 -199 75.5 -289t206.5 -90t208 90.5t77 288.5v839h166v-835q0 -275 -121 -404t-330 -129q-102 0 -183 29.5t-142.5 92t-95 166.5t-33.5 245zM481 1513l289 263l96 -113l-311 -236z" />
<glyph unicode="&#xdb;" d="M162 508v835h172v-839q0 -199 75.5 -289t206.5 -90t208 90.5t77 288.5v839h166v-835q0 -275 -121 -404t-330 -129q-102 0 -183 29.5t-142.5 92t-95 166.5t-33.5 245zM311 1485l215 231h176l216 -231l-74 -53l-226 190h-8l-225 -190z" />
<glyph unicode="&#xdc;" d="M162 508v835h172v-839q0 -199 75.5 -289t206.5 -90t208 90.5t77 288.5v839h166v-835q0 -275 -121 -404t-330 -129q-102 0 -183 29.5t-142.5 92t-95 166.5t-33.5 245zM324 1569q0 45 29.5 73.5t74.5 28.5t73.5 -28.5t28.5 -73.5q0 -46 -29 -75.5t-73 -29.5t-74 30t-30 75z M698 1569q0 45 29 73.5t74 28.5t74.5 -28.5t29.5 -73.5t-29.5 -75t-74.5 -30q-44 0 -73.5 29.5t-29.5 75.5z" />
<glyph unicode="&#xdd;" d="M78 1343h180l203 -399q23 -47 73.5 -151t79.5 -162h9q28 58 81 163t76 152l195 397h176l-451 -864v-479h-172v479zM481 1513l289 263l96 -113l-311 -236z" />
<glyph unicode="&#xde;" d="M207 0v1343h172v-225h242q115 0 203 -21t155 -66.5t102 -123t35 -184.5q0 -207 -133 -311.5t-362 -104.5h-242v-307h-172zM379 446h219q178 0 263 66.5t85 210.5q0 140 -84 198t-264 58h-219v-533z" />
<glyph unicode="&#xdf;" d="M180 0v1063q0 191 111 305.5t301 114.5q156 0 246 -87.5t90 -215.5q0 -57 -19 -107.5t-46 -87t-54.5 -70.5t-46.5 -72.5t-19 -76.5q0 -40 22.5 -72t59 -55t80.5 -45t88 -49t80.5 -60.5t59 -85.5t22.5 -118q0 -132 -92 -219t-242 -87q-155 0 -295 93l68 118 q115 -80 223 -80q83 0 130.5 46.5t47.5 113.5q0 48 -23 86t-59 63.5t-80.5 48.5t-88.5 48t-80 54.5t-59 75t-23 103.5q0 62 29 120t63 96.5t63 94t29 113.5q0 78 -47 127.5t-129 49.5q-114 0 -178 -79t-64 -229v-1038h-168z" />
<glyph unicode="&#xe0;" d="M166 258q0 168 168 255t553 118q-3 112 -66 181t-198 69q-157 0 -349 -119l-65 115q89 59 206 101t236 42q199 0 301.5 -109.5t102.5 -300.5v-610h-137l-15 135h-6q-207 -160 -393 -160q-144 0 -241 76.5t-97 206.5zM330 270q0 -80 62.5 -119.5t156.5 -39.5 q161 0 338 147v262q-208 -17 -333 -52t-174.5 -82.5t-49.5 -115.5zM377 1477l119 114l290 -344l-88 -84z" />
<glyph unicode="&#xe1;" d="M166 258q0 168 168 255t553 118q-3 112 -66 181t-198 69q-157 0 -349 -119l-65 115q89 59 206 101t236 42q199 0 301.5 -109.5t102.5 -300.5v-610h-137l-15 135h-6q-207 -160 -393 -160q-144 0 -241 76.5t-97 206.5zM330 270q0 -80 62.5 -119.5t156.5 -39.5 q161 0 338 147v262q-208 -17 -333 -52t-174.5 -82.5t-49.5 -115.5zM524 1247l291 344l119 -114l-322 -314z" />
<glyph unicode="&#xe2;" d="M166 258q0 168 168 255t553 118q-3 112 -66 181t-198 69q-157 0 -349 -119l-65 115q89 59 206 101t236 42q199 0 301.5 -109.5t102.5 -300.5v-610h-137l-15 135h-6q-207 -160 -393 -160q-144 0 -241 76.5t-97 206.5zM330 270q0 -80 62.5 -119.5t156.5 -39.5 q161 0 338 147v262q-208 -17 -333 -52t-174.5 -82.5t-49.5 -115.5zM338 1229l233 287h168l234 -287l-72 -66l-242 232h-8l-241 -232z" />
<glyph unicode="&#xe3;" d="M166 258q0 168 168 255t553 118q-3 112 -66 181t-198 69q-157 0 -349 -119l-65 115q89 59 206 101t236 42q199 0 301.5 -109.5t102.5 -300.5v-610h-137l-15 135h-6q-207 -160 -393 -160q-144 0 -241 76.5t-97 206.5zM301 1198q5 128 55.5 203.5t151.5 75.5q49 0 93.5 -27 t72.5 -59t63 -59t66 -27q42 0 65.5 43.5t28.5 117.5l113 -8q-5 -126 -55.5 -201t-151.5 -75q-40 0 -76.5 17.5t-63 43t-51 51t-50.5 43t-52 17.5q-86 0 -96 -162zM330 270q0 -80 62.5 -119.5t156.5 -39.5q161 0 338 147v262q-208 -17 -333 -52t-174.5 -82.5t-49.5 -115.5z " />
<glyph unicode="&#xe4;" d="M166 258q0 168 168 255t553 118q-3 112 -66 181t-198 69q-157 0 -349 -119l-65 115q89 59 206 101t236 42q199 0 301.5 -109.5t102.5 -300.5v-610h-137l-15 135h-6q-207 -160 -393 -160q-144 0 -241 76.5t-97 206.5zM330 270q0 -80 62.5 -119.5t156.5 -39.5 q161 0 338 147v262q-208 -17 -333 -52t-174.5 -82.5t-49.5 -115.5zM344 1319q0 48 32 81.5t81 33.5t80.5 -33.5t31.5 -81.5q0 -50 -31.5 -82.5t-80.5 -32.5t-81 32.5t-32 82.5zM741 1319q0 48 32 81.5t81 33.5t81 -33.5t32 -81.5q0 -50 -32 -82.5t-81 -32.5t-81 32.5 t-32 82.5z" />
<glyph unicode="&#xe5;" d="M166 258q0 168 168 255t553 118q-3 112 -66 181t-198 69q-157 0 -349 -119l-65 115q89 59 206 101t236 42q199 0 301.5 -109.5t102.5 -300.5v-610h-137l-15 135h-6q-207 -160 -393 -160q-144 0 -241 76.5t-97 206.5zM330 270q0 -80 62.5 -119.5t156.5 -39.5 q161 0 338 147v262q-208 -17 -333 -52t-174.5 -82.5t-49.5 -115.5zM430 1362q0 86 61 141.5t164 55.5t164.5 -56t61.5 -141t-61.5 -141t-164.5 -56t-164 55.5t-61 141.5zM539 1362q0 -51 33.5 -86t82.5 -35t83 35t34 86q0 52 -33.5 86.5t-83.5 34.5t-83 -34.5t-33 -86.5z " />
<glyph unicode="&#xe6;" d="M35 246q0 155 122 247t388 125q-8 263 -180 263q-114 0 -234 -82l-63 114q166 107 311 107q186 0 252 -205q49 104 124 154.5t163 50.5q100 0 170.5 -64t102.5 -164.5t32 -226.5q0 -35 -9 -114h-534q8 -159 74 -248.5t182 -89.5q101 0 194 65l62 -115q-122 -88 -262 -88 q-202 0 -307 179q-152 -179 -326 -179q-116 0 -189 73.5t-73 197.5zM190 262q0 -71 41.5 -111t110.5 -40q58 0 121.5 36.5t116.5 104.5q-35 110 -35 244v14q-197 -29 -276 -90t-79 -158zM682 582h403q-9 305 -178 305q-85 0 -148 -75t-77 -230z" />
<glyph unicode="&#xe7;" d="M164 496q0 122 44.5 222.5t120.5 165.5t176.5 100.5t213.5 35.5q212 0 362 -146l-84 -108q-131 115 -272 115q-172 0 -279.5 -106.5t-107.5 -278.5q0 -170 105.5 -275.5t277.5 -105.5q161 0 307 125l76 -109q-151 -136 -346 -154l-39 -108q75 -18 112 -51.5t37 -93.5 q0 -171 -338 -187l-16 82q125 9 174 32.5t49 69.5q0 41 -35.5 64t-121.5 35l65 157q-215 19 -348 156.5t-133 362.5z" />
<glyph unicode="&#xe8;" d="M139 500q0 118 42 217.5t112.5 164.5t162 101.5t191.5 36.5q213 0 334 -127t121 -340q0 -48 -8 -102h-785q15 -164 120.5 -252t266.5 -88q155 0 303 94l62 -111q-177 -119 -385 -119q-151 0 -271.5 61t-193 182t-72.5 282zM313 582h635q-10 151 -88.5 228t-208.5 77 q-127 0 -221 -81t-117 -224zM369 1477l118 114l291 -344l-88 -84z" />
<glyph unicode="&#xe9;" d="M139 500q0 118 42 217.5t112.5 164.5t162 101.5t191.5 36.5q213 0 334 -127t121 -340q0 -48 -8 -102h-785q15 -164 120.5 -252t266.5 -88q155 0 303 94l62 -111q-177 -119 -385 -119q-151 0 -271.5 61t-193 182t-72.5 282zM313 582h635q-10 151 -88.5 228t-208.5 77 q-127 0 -221 -81t-117 -224zM516 1247l291 344l119 -114l-322 -314z" />
<glyph unicode="&#xea;" d="M139 500q0 118 42 217.5t112.5 164.5t162 101.5t191.5 36.5q213 0 334 -127t121 -340q0 -48 -8 -102h-785q15 -164 120.5 -252t266.5 -88q155 0 303 94l62 -111q-177 -119 -385 -119q-151 0 -271.5 61t-193 182t-72.5 282zM313 582h635q-10 151 -88.5 228t-208.5 77 q-127 0 -221 -81t-117 -224zM330 1229l233 287h168l234 -287l-72 -66l-242 232h-8l-242 -232z" />
<glyph unicode="&#xeb;" d="M139 500q0 118 42 217.5t112.5 164.5t162 101.5t191.5 36.5q213 0 334 -127t121 -340q0 -48 -8 -102h-785q15 -164 120.5 -252t266.5 -88q155 0 303 94l62 -111q-177 -119 -385 -119q-151 0 -271.5 61t-193 182t-72.5 282zM313 582h635q-10 151 -88.5 228t-208.5 77 q-127 0 -221 -81t-117 -224zM336 1319q0 48 32 81.5t81 33.5t80.5 -33.5t31.5 -81.5q0 -50 -31.5 -82.5t-80.5 -32.5t-81 32.5t-32 82.5zM733 1319q0 48 32 81.5t81 33.5t80.5 -33.5t31.5 -81.5q0 -50 -31.5 -82.5t-80.5 -32.5t-81 32.5t-32 82.5z" />
<glyph unicode="&#xec;" d="M184 858v137h631v-995h-168v858h-463zM434 1477l119 114l291 -344l-88 -84z" />
<glyph unicode="&#xed;" d="M184 858v137h631v-995h-168v858h-463zM582 1247l290 344l119 -114l-321 -314z" />
<glyph unicode="&#xee;" d="M184 858v137h631v-995h-168v858h-463zM395 1229l234 287h168l233 -287l-72 -66l-241 232h-8l-242 -232z" />
<glyph unicode="&#xef;" d="M184 858v137h631v-995h-168v858h-463zM401 1319q0 48 32 81.5t81 33.5t81 -33.5t32 -81.5q0 -50 -32 -82.5t-81 -32.5t-81 32.5t-32 82.5zM799 1319q0 48 31.5 81.5t80.5 33.5t81 -33.5t32 -81.5q0 -50 -32 -82.5t-81 -32.5t-80.5 32.5t-31.5 82.5z" />
<glyph unicode="&#xf0;" d="M123 455q0 207 131 333.5t336 126.5q95 0 181.5 -43.5t143.5 -119.5q-53 257 -235 419l-311 -159l-62 106l266 135q-93 65 -235 136l78 106q179 -84 295 -172l280 143l62 -102l-242 -125q287 -277 287 -713q0 -248 -132.5 -399.5t-355.5 -151.5q-130 0 -240 57 t-178.5 168t-68.5 255zM281 455q0 -150 96.5 -245t236.5 -95q158 0 240 110t82 295q0 61 -2 90q-132 174 -320 174q-159 0 -246 -91.5t-87 -237.5z" />
<glyph unicode="&#xf1;" d="M190 0v995h140l14 -170h8q87 93 176.5 144t198.5 51q344 0 344 -402v-618h-168v596q0 143 -54 210.5t-175 67.5q-85 0 -153.5 -41.5t-162.5 -138.5v-694h-168zM297 1198q5 128 55.5 203.5t151.5 75.5q49 0 93.5 -27t72.5 -59t63 -59t66 -27q42 0 65.5 43.5t28.5 117.5 l113 -8q-5 -126 -55.5 -201t-151.5 -75q-40 0 -76.5 17.5t-63 43t-51 51t-50.5 43t-52 17.5q-86 0 -96 -162z" />
<glyph unicode="&#xf2;" d="M123 496q0 122 40 222.5t107.5 165.5t156 100.5t187.5 35.5t187.5 -35.5t156.5 -100.5t108 -165.5t40 -222.5q0 -120 -40 -220t-108 -165t-156.5 -100.5t-187.5 -35.5t-187.5 35.5t-156 100.5t-107.5 165t-40 220zM297 496q0 -170 87.5 -275.5t229.5 -105.5t230 105.5 t88 275.5q0 172 -88 278.5t-230 106.5t-229.5 -106.5t-87.5 -278.5zM336 1477l119 114l290 -344l-88 -84z" />
<glyph unicode="&#xf3;" d="M123 496q0 122 40 222.5t107.5 165.5t156 100.5t187.5 35.5t187.5 -35.5t156.5 -100.5t108 -165.5t40 -222.5q0 -120 -40 -220t-108 -165t-156.5 -100.5t-187.5 -35.5t-187.5 35.5t-156 100.5t-107.5 165t-40 220zM297 496q0 -170 87.5 -275.5t229.5 -105.5t230 105.5 t88 275.5q0 172 -88 278.5t-230 106.5t-229.5 -106.5t-87.5 -278.5zM483 1247l291 344l119 -114l-322 -314z" />
<glyph unicode="&#xf4;" d="M123 496q0 122 40 222.5t107.5 165.5t156 100.5t187.5 35.5t187.5 -35.5t156.5 -100.5t108 -165.5t40 -222.5q0 -120 -40 -220t-108 -165t-156.5 -100.5t-187.5 -35.5t-187.5 35.5t-156 100.5t-107.5 165t-40 220zM297 496q0 -170 87.5 -275.5t229.5 -105.5t230 105.5 t88 275.5q0 172 -88 278.5t-230 106.5t-229.5 -106.5t-87.5 -278.5zM297 1229l233 287h168l234 -287l-72 -66l-242 232h-8l-241 -232z" />
<glyph unicode="&#xf5;" d="M123 496q0 122 40 222.5t107.5 165.5t156 100.5t187.5 35.5t187.5 -35.5t156.5 -100.5t108 -165.5t40 -222.5q0 -120 -40 -220t-108 -165t-156.5 -100.5t-187.5 -35.5t-187.5 35.5t-156 100.5t-107.5 165t-40 220zM260 1198q5 128 55.5 203.5t151.5 75.5q49 0 93.5 -27 t72.5 -59t63 -59t66 -27q42 0 65.5 43.5t28.5 117.5l113 -8q-5 -126 -55.5 -201t-151.5 -75q-40 0 -76.5 17.5t-63 43t-51 51t-50.5 43t-52 17.5q-86 0 -96 -162zM297 496q0 -170 87.5 -275.5t229.5 -105.5t230 105.5t88 275.5q0 172 -88 278.5t-230 106.5t-229.5 -106.5 t-87.5 -278.5z" />
<glyph unicode="&#xf6;" d="M123 496q0 122 40 222.5t107.5 165.5t156 100.5t187.5 35.5t187.5 -35.5t156.5 -100.5t108 -165.5t40 -222.5q0 -120 -40 -220t-108 -165t-156.5 -100.5t-187.5 -35.5t-187.5 35.5t-156 100.5t-107.5 165t-40 220zM297 496q0 -170 87.5 -275.5t229.5 -105.5t230 105.5 t88 275.5q0 172 -88 278.5t-230 106.5t-229.5 -106.5t-87.5 -278.5zM303 1319q0 48 32 81.5t81 33.5t80.5 -33.5t31.5 -81.5q0 -50 -31.5 -82.5t-80.5 -32.5t-81 32.5t-32 82.5zM700 1319q0 48 32 81.5t81 33.5t81 -33.5t32 -81.5q0 -50 -32 -82.5t-81 -32.5t-81 32.5 t-32 82.5z" />
<glyph unicode="&#xf7;" d="M174 612v127h881v-127h-881zM504 307q0 47 31.5 78t78.5 31t79 -31t32 -78q0 -49 -31.5 -79.5t-79.5 -30.5t-79 30.5t-31 79.5zM504 1044q0 47 31.5 78t78.5 31t79 -31t32 -78q0 -49 -31.5 -79.5t-79.5 -30.5t-79 30.5t-31 79.5z" />
<glyph unicode="&#xf8;" d="M123 496q0 122 40 222.5t107.5 165.5t156 100.5t187.5 35.5q160 0 287 -88l107 125l94 -86l-109 -127q113 -139 113 -348q0 -120 -40 -220t-108 -165t-156.5 -100.5t-187.5 -35.5q-159 0 -286 88l-107 -124l-94 86l109 127q-113 139 -113 344zM297 496q0 -125 47 -217 l459 538q-77 68 -189 68q-142 0 -229.5 -108.5t-87.5 -280.5zM424 176q81 -65 190 -65q142 0 230 107t88 278q0 130 -47 219z" />
<glyph unicode="&#xf9;" d="M158 377v618h170v-596q0 -144 53.5 -211t175.5 -67q84 0 154 42.5t155 141.5v690h168v-995h-137l-14 174h-9q-170 -199 -370 -199q-346 0 -346 402zM326 1477l118 114l291 -344l-88 -84z" />
<glyph unicode="&#xfa;" d="M158 377v618h170v-596q0 -144 53.5 -211t175.5 -67q84 0 154 42.5t155 141.5v690h168v-995h-137l-14 174h-9q-170 -199 -370 -199q-346 0 -346 402zM473 1247l291 344l119 -114l-322 -314z" />
<glyph unicode="&#xfb;" d="M158 377v618h170v-596q0 -144 53.5 -211t175.5 -67q84 0 154 42.5t155 141.5v690h168v-995h-137l-14 174h-9q-170 -199 -370 -199q-346 0 -346 402zM287 1229l233 287h168l234 -287l-72 -66l-242 232h-8l-242 -232z" />
<glyph unicode="&#xfc;" d="M158 377v618h170v-596q0 -144 53.5 -211t175.5 -67q84 0 154 42.5t155 141.5v690h168v-995h-137l-14 174h-9q-170 -199 -370 -199q-346 0 -346 402zM293 1319q0 48 32 81.5t81 33.5t80.5 -33.5t31.5 -81.5q0 -50 -31.5 -82.5t-80.5 -32.5t-81 32.5t-32 82.5zM690 1319 q0 48 32 81.5t81 33.5t80.5 -33.5t31.5 -81.5q0 -50 -31.5 -82.5t-80.5 -32.5t-81 32.5t-32 82.5z" />
<glyph unicode="&#xfd;" d="M100 995h170l244 -551q17 -39 37.5 -87t46 -108.5t39.5 -92.5h8q92 247 107 288l217 551h159l-438 -1077q-130 -346 -422 -346q-73 0 -131 20l35 134q51 -15 90 -15q188 0 273 213l30 74zM492 1247l290 344l119 -114l-321 -314z" />
<glyph unicode="&#xfe;" d="M190 -420v1878h168v-411l-6 -179h6q70 70 158 111t174 41q198 0 307 -136.5t109 -371.5q0 -123 -37.5 -226t-100.5 -170t-144.5 -104t-170.5 -37q-72 0 -151 35t-144 94h-6l6 -188v-336h-168zM358 233q66 -59 137.5 -87.5t129.5 -28.5q134 0 220.5 107t86.5 288 q0 172 -69.5 269.5t-213.5 97.5q-141 0 -291 -150v-496z" />
<glyph unicode="&#xff;" d="M100 995h170l244 -551q17 -39 37.5 -87t46 -108.5t39.5 -92.5h8q92 247 107 288l217 551h159l-438 -1077q-130 -346 -422 -346q-73 0 -131 20l35 134q51 -15 90 -15q188 0 273 213l30 74zM311 1319q0 48 32 81.5t81 33.5t81 -33.5t32 -81.5q0 -50 -32 -82.5t-81 -32.5 t-81 32.5t-32 82.5zM709 1319q0 48 31.5 81.5t80.5 33.5t81 -33.5t32 -81.5q0 -50 -32 -82.5t-81 -32.5t-80.5 32.5t-31.5 82.5z" />
<glyph unicode="&#x152;" d="M68 678q0 318 144 493t400 175h578v-144h-397v-424h303v-145h-303v-488h417v-145h-604q-254 0 -396 178.5t-142 499.5zM244 678q0 -260 87.5 -399.5t260.5 -139.5h45v1065h-45q-173 0 -260.5 -134.5t-87.5 -391.5z" />
<glyph unicode="&#x153;" d="M23 496q0 244 99.5 384t254.5 140q190 0 268 -246q39 123 112 184.5t171 61.5q95 0 163 -63.5t100 -164.5t32 -227q0 -35 -9 -114h-503q9 -165 74.5 -251.5t168.5 -86.5q83 0 176 65l62 -115q-113 -88 -244 -88q-104 0 -182.5 59.5t-118.5 180.5q-82 -240 -272 -240 q-155 0 -253.5 139.5t-98.5 381.5zM180 496q0 -174 53.5 -277.5t151.5 -103.5q89 0 143 106t54 277t-54 277t-143 106q-98 0 -151.5 -104t-53.5 -281zM713 582h372q-9 305 -172 305q-82 0 -136 -78.5t-64 -226.5z" />
<glyph unicode="&#x178;" d="M78 1343h180l203 -399q23 -47 73.5 -151t79.5 -162h9q28 58 81 163t76 152l195 397h176l-451 -864v-479h-172v479zM324 1569q0 45 29.5 73.5t74.5 28.5t73.5 -28.5t28.5 -73.5q0 -46 -29 -75.5t-73 -29.5t-74 30t-30 75zM698 1569q0 45 29 73.5t74 28.5t74.5 -28.5 t29.5 -73.5t-29.5 -75t-74.5 -30q-44 0 -73.5 29.5t-29.5 75.5z" />
<glyph unicode="&#x2c6;" d="M297 1229l233 287h168l234 -287l-72 -66l-242 232h-8l-241 -232z" />
<glyph unicode="&#x2dc;" d="M260 1198q5 128 55.5 203.5t151.5 75.5q49 0 93.5 -27t72.5 -59t63 -59t66 -27q42 0 65.5 43.5t28.5 117.5l113 -8q-5 -126 -55.5 -201t-151.5 -75q-40 0 -76.5 17.5t-63 43t-51 51t-50.5 43t-52 17.5q-86 0 -96 -162z" />
<glyph unicode="&#x2000;" horiz-adv-x="901" />
<glyph unicode="&#x2001;" horiz-adv-x="1802" />
<glyph unicode="&#x2002;" horiz-adv-x="901" />
<glyph unicode="&#x2003;" horiz-adv-x="1802" />
<glyph unicode="&#x2004;" horiz-adv-x="600" />
<glyph unicode="&#x2005;" horiz-adv-x="450" />
<glyph unicode="&#x2006;" horiz-adv-x="300" />
<glyph unicode="&#x2007;" horiz-adv-x="300" />
<glyph unicode="&#x2008;" horiz-adv-x="225" />
<glyph unicode="&#x2009;" horiz-adv-x="360" />
<glyph unicode="&#x200a;" horiz-adv-x="100" />
<glyph unicode="&#x2010;" d="M174 612v127h881v-127h-881z" />
<glyph unicode="&#x2011;" d="M174 612v127h881v-127h-881z" />
<glyph unicode="&#x2012;" d="M174 612v127h881v-127h-881z" />
<glyph unicode="&#x2013;" d="M164 442v148h901v-148h-901z" />
<glyph unicode="&#x2014;" d="M0 442v148h1229v-148h-1229z" />
<glyph unicode="&#x2018;" d="M428 963q0 153 78 275.5t217 193.5l55 -99q-199 -118 -211 -323q24 12 54 12q63 0 103 -41.5t40 -106.5q0 -70 -42.5 -113.5t-109.5 -43.5q-81 0 -132.5 66.5t-51.5 179.5z" />
<glyph unicode="&#x2019;" d="M444 815q201 114 213 324q-26 -13 -53 -13q-64 0 -104.5 40.5t-40.5 105.5q0 70 42.5 115t108.5 45q83 0 134 -66.5t51 -181.5q0 -152 -77.5 -274t-215.5 -193z" />
<glyph unicode="&#x201a;" d="M444 -365q201 114 213 324q-24 -12 -53 -12q-64 0 -104.5 40.5t-40.5 104.5q0 70 42.5 115t108.5 45q83 0 134 -66.5t51 -181.5q0 -152 -77.5 -274t-215.5 -193z" />
<glyph unicode="&#x201c;" d="M193 963q0 153 77.5 275.5t216.5 193.5l56 -99q-199 -118 -211 -323q24 12 53 12q63 0 103 -41.5t40 -106.5q0 -70 -42.5 -113.5t-108.5 -43.5q-81 0 -132.5 66.5t-51.5 179.5zM664 963q0 153 77.5 275.5t216.5 193.5l56 -99q-199 -118 -211 -323q24 12 53 12 q63 0 103 -41.5t40 -106.5q0 -70 -42.5 -113.5t-108.5 -43.5q-81 0 -132.5 66.5t-51.5 179.5z" />
<glyph unicode="&#x201d;" d="M209 815q201 114 213 324q-26 -13 -53 -13q-65 0 -105.5 41t-40.5 105q0 70 43 115t109 45q83 0 133.5 -66.5t50.5 -181.5q0 -152 -77.5 -274t-215.5 -193zM680 815q201 114 213 324q-26 -13 -53 -13q-64 0 -105 41t-41 105q0 70 43 115t109 45q83 0 133.5 -66.5 t50.5 -181.5q0 -152 -77.5 -274t-215.5 -193z" />
<glyph unicode="&#x201e;" d="M209 -365q201 114 213 324q-24 -12 -53 -12q-65 0 -105.5 40.5t-40.5 104.5q0 70 43 115t109 45q83 0 133.5 -66.5t50.5 -181.5q0 -152 -77.5 -274t-215.5 -193zM680 -365q201 114 213 324q-24 -12 -53 -12q-65 0 -105.5 40.5t-40.5 104.5q0 70 43 115t109 45 q83 0 133.5 -66.5t50.5 -181.5q0 -152 -77.5 -274t-215.5 -193z" />
<glyph unicode="&#x2022;" d="M309 537q0 132 90 216.5t215 84.5t215.5 -85t90.5 -216t-90.5 -216t-215.5 -85t-215 84.5t-90 216.5z" />
<glyph unicode="&#x2026;" d="M66 129q0 68 41 111t102 43q60 0 100.5 -43t40.5 -111q0 -67 -41 -110.5t-100 -43.5q-61 0 -102 43.5t-41 110.5zM471 129q0 68 41 111t102 43t102.5 -43t41.5 -111q0 -67 -41.5 -110.5t-102.5 -43.5t-102 43.5t-41 110.5zM879 129q0 68 40.5 111t100.5 43q61 0 102 -43 t41 -111q0 -67 -41 -110.5t-102 -43.5q-59 0 -100 43.5t-41 110.5z" />
<glyph unicode="&#x202f;" horiz-adv-x="360" />
<glyph unicode="&#x2039;" d="M403 434v164l314 328l80 -72l-260 -338l260 -340l-80 -70z" />
<glyph unicode="&#x203a;" d="M432 176l260 340l-260 338l80 72l313 -328v-164l-313 -328z" />
<glyph unicode="&#x205f;" horiz-adv-x="450" />
<glyph unicode="&#x20ac;" d="M119 483v90l121 9q-2 23 -2 69q0 45 2 68h-121v90l131 10q38 241 183 376.5t362 135.5q100 0 190.5 -44t155.5 -116l-101 -96q-118 121 -252 121q-147 0 -240.5 -99t-123.5 -278h602v-100h-612q-2 -20 -2 -62q0 -48 2 -73h530v-101h-518q30 -177 120 -274.5t230 -97.5 q85 0 152 36t131 109l100 -90q-164 -191 -393 -191q-202 0 -340 135t-176 373h-131z" />
<glyph unicode="&#x2122;" d="M-10 1274v110h516v-110h-197v-524h-123v524h-196zM598 750v634h145l93 -233l55 -164h8l53 164l90 233h146v-634h-113v280l15 215h-9l-145 -383h-86l-148 383h-8l15 -215v-280h-111z" />
<glyph unicode="&#x25fc;" horiz-adv-x="993" d="M0 0v993h993v-993h-993z" />
<glyph unicode="&#xfb01;" d="M106 858v127l136 10v158q0 157 72 243.5t218 86.5q83 0 166 -33l-34 -129q-61 25 -113 25q-141 0 -141 -193v-158h211v-137h-211v-858h-168v858h-136zM799 1335q0 58 38.5 94.5t96.5 36.5t96.5 -36.5t38.5 -94.5q0 -59 -38.5 -95t-96.5 -36t-96.5 36t-38.5 95zM848 0v995 h168v-995h-168z" />
<glyph unicode="&#xfb02;" d="M117 858v127l135 10v158q0 157 72.5 243.5t218.5 86.5q83 0 166 -33l-37 -129q-58 25 -113 25q-139 0 -139 -193v-158h211v-137h-211v-858h-168v858h-135zM821 201v1257h168v-1270q0 -37 13 -55t34 -18q19 0 37 4l23 -127q-42 -17 -97 -17q-93 0 -135.5 57t-42.5 169z " />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Binary file not shown.

3
fonts/tahoma.css Normal file
View File

@ -0,0 +1,3 @@
.crayon-font-tahoma * {
font-family: Tahoma, Arial, sans !important;
}

3
fonts/times.css Normal file
View File

@ -0,0 +1,3 @@
.crayon-font-times * {
font-family: Times New Roman, serif !important;
}

14
fonts/ubuntu-mono.css Normal file
View File

@ -0,0 +1,14 @@
@font-face {
font-family: 'UbuntuMonoRegular';
src: url('ubuntu-mono/ubuntu-mono-webfont.eot');
src: url('ubuntu-mono/ubuntu-mono-webfont.eot?#iefix') format('embedded-opentype'),
url('ubuntu-mono/ubuntu-mono-webfont.woff') format('woff'),
url('ubuntu-mono/ubuntu-mono-webfont.ttf') format('truetype'),
url('ubuntu-mono/ubuntu-mono-webfont.svg#UbuntuMonoRegular') format('svg');
font-weight: normal;
font-style: normal;
}
.crayon-font-ubuntu-mono * {
font-family: Ubuntu Mono, 'UbuntuMonoRegular', 'Courier New', monospace !important;
}

Binary file not shown.

View File

@ -0,0 +1,146 @@
<?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>
This is a custom SVG webfont generated by Font Squirrel.
Copyright : Copyright 2011 Canonical Ltd Licensed under the Ubuntu Font Licence 10
Designer : Dalton Maag Ltd
Foundry : Dalton Maag Ltd
Foundry URL : httpwwwdaltonmaagcom
</metadata>
<defs>
<font id="UbuntuMonoRegular" horiz-adv-x="1024" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M371 114.5q0 63.5 41 101.5t96 38q57 0 97 -38t40 -101.5t-40 -101.5t-97 -38q-55 0 -96 38t-41 101.5zM418 924v344h182v-344q0 -76 -2 -139.5t-7 -121t-11 -113.5l-13 -118h-116l-13 118q-6 56 -11 113.5t-7 121t-2 139.5z" />
<glyph unicode="&#x22;" d="M264 1300v91h158v-93q0 -90 -10.5 -205.5t-26.5 -211.5h-86q-14 96 -24.5 211.5t-10.5 207.5zM602 1300v91h158v-93q0 -90 -10.5 -205.5t-24.5 -211.5h-86q-16 96 -26.5 211.5t-10.5 207.5z" />
<glyph unicode="#" d="M55 334v137h158l61 326h-219v135h248l64 336h153l-63 -336h227l61 336h154l-61 -336h131v-135h-158l-63 -326h221v-137h-248l-64 -334h-153l63 334h-227l-64 -334h-153l63 334h-131zM367 471h225l63 326h-225z" />
<glyph unicode="$" d="M111 106l45 142q55 -27 130.5 -50.5t190.5 -23.5q74 0 124 11.5t79 33t41 51t12 64.5q0 51 -24.5 87t-66.5 63.5t-95 49t-111 41.5q-55 20 -109.5 45t-96.5 61t-68.5 86t-26.5 124q0 131 78 213t225 104v211h152v-205q82 -4 150.5 -19t109.5 -32l-35 -143 q-43 16 -108.5 33.5t-165.5 17.5q-111 0 -169.5 -41t-58.5 -119q0 -43 17.5 -71.5t50.5 -51t77 -41t99 -38.5q70 -27 135.5 -56.5t114.5 -70.5t78.5 -98.5t29.5 -137.5q0 -121 -79.5 -205t-245.5 -104v-236h-152v230q-129 4 -208.5 28t-118.5 47z" />
<glyph unicode="%" d="M37 977q0 156 59.5 236.5t164 80.5t163.5 -80.5t59 -236.5t-59 -238t-163.5 -82t-164 82t-59.5 238zM51 0l776 1268h144l-776 -1268h-144zM162 977q0 -92 25.5 -151.5t72.5 -59.5t71.5 59.5t24.5 151.5t-24.5 151.5t-71.5 59.5t-72.5 -59.5t-25.5 -151.5zM543 290.5 q0 155.5 58 236.5t162.5 81t164 -81t59.5 -236.5t-59.5 -236.5t-164 -81t-162.5 81t-58 236.5zM668 291q0 -92 24.5 -151.5t71.5 -59.5t72.5 59.5t25.5 151.5t-25.5 151.5t-72.5 59.5t-71.5 -59.5t-24.5 -151.5z" />
<glyph unicode="&#x26;" d="M63 309q0 96 50.5 194.5t158.5 182.5q-53 72 -85.5 145.5t-32.5 151.5q0 80 25.5 139.5t68.5 97t99 57t116 19.5q53 0 104 -16t90 -50t62.5 -83t23.5 -113q0 -94 -61 -193.5t-195 -183.5l70 -77l73 -83l77 -89q16 57 28.5 124.5t18.5 149.5l141 -18 q-12 -119 -35.5 -212.5t-58.5 -168.5q47 -66 90 -135.5t78 -147.5h-178q-35 72 -78 137q-66 -82 -147 -117.5t-169 -35.5q-78 0 -139 25.5t-104 70.5t-67 104t-24 125zM233 326q0 -80 41 -132.5t101 -65.5q18 -4 38 -4q43 0 91 20q70 30 127 112q-68 92 -141 171l-138 157 q-59 -53 -89 -122.5t-30 -135.5zM313 995q0 -59 18.5 -110t78.5 -129q98 61 139 130.5t41 129.5q0 74 -40 110.5t-91 36.5q-53 0 -99.5 -42t-46.5 -126z" />
<glyph unicode="'" d="M422 1300v91h178v-93q0 -45 -3 -103t-8 -120.5t-11.5 -123t-14.5 -107.5h-104q-8 47 -14.5 107.5t-11.5 123t-8 121.5t-3 104z" />
<glyph unicode="(" d="M231 549q0 254 117 485.5t350 401.5l90 -123h-2q-190 -147 -290.5 -340t-100.5 -420q0 -115 23.5 -217.5t72 -196.5t123 -182t177.5 -176l-93 -123q-236 174 -351.5 404.5t-115.5 486.5z" />
<glyph unicode=")" d="M231 1313l93 123q236 -174 351.5 -404.5t115.5 -486.5q0 -127 -30 -250t-88.5 -236.5t-145.5 -215t-203 -185.5l-91 123h3q190 147 291.5 339.5t101.5 420.5q0 115 -23.5 217t-73 196.5t-124.5 182.5t-177 176z" />
<glyph unicode="*" d="M117 915l55 168l14 -6q72 -29 144.5 -63.5t138.5 -71.5q-16 74 -29.5 154t-13.5 157v15h176v-15q0 -78 -13.5 -157.5t-29.5 -153.5q66 39 137.5 73t143.5 60l14 6l53 -168l-12 -4q-74 -23 -152.5 -35t-154.5 -20l114 -108q59 -56 101 -119l8 -11l-143 -104l-11 12 q-43 61 -77 134l-66 141l-68 -141q-35 -73 -81 -134l-11 -10l-141 102l10 13q45 63 103 119l112 106l-155 22q-80 11 -152 35z" />
<glyph unicode="+" d="M94 467v143h344v377h148v-377h346v-143h-346v-379h-148v379h-344z" />
<glyph unicode="," d="M305 -162l73 17q36 8 66.5 23.5t55 39t39.5 64.5q-66 6 -95.5 50t-29.5 87q0 82 46 124t105 42q76 0 115 -54.5t39 -132.5q0 -59 -23.5 -123.5t-72 -121t-120 -96.5t-169.5 -52z" />
<glyph unicode="-" d="M287 440v160h450v-160h-450z" />
<glyph unicode="." d="M362 131q0 63 41 110.5t111 47.5q68 0 109 -47t41 -111q0 -61 -41 -108.5t-109 -47.5q-70 0 -111 47.5t-41 108.5z" />
<glyph unicode="/" d="M141 -338l572 1770h170l-568 -1770h-174z" />
<glyph unicode="0" d="M94 634.5q0 319.5 109.5 490.5t308.5 171q201 0 309.5 -171t108.5 -490.5t-108.5 -490.5t-309.5 -171q-199 0 -308.5 171t-109.5 490.5zM266 634.5q0 -104.5 12.5 -197.5t41 -162.5t75.5 -110.5t117 -41t117 41t75.5 110.5t41 162.5t12.5 197.5t-12.5 198t-41 163 t-75.5 110.5t-117 41t-117 -41t-75.5 -110.5t-41 -163t-12.5 -198zM397 657.5q0 53.5 33 94.5t86 41q51 0 83 -41t32 -94.5t-32 -92.5t-83 -39q-53 0 -86 39t-33 92.5z" />
<glyph unicode="1" d="M154 1006q104 41 202.5 103t182.5 159h118v-1125h240v-143h-682v143h274v889q-23 -20 -54.5 -41.5t-69 -42t-78.5 -39t-80 -30.5z" />
<glyph unicode="2" d="M117 1145q16 18 49 45t79 50.5t103.5 39.5t122.5 16q199 0 294 -91t95 -261q0 -66 -25.5 -127t-67.5 -120.5t-95 -116.5l-109 -113l-71 -74q-41 -43 -78 -88t-61.5 -88t-24.5 -74h583v-143h-768q-2 10 -2 22v21q0 86 29 159.5t74 139.5t101 124l112 114l87 88 q42 43 73.5 86t51 89t19.5 95q0 55 -17.5 94t-47 64.5t-68.5 38t-84 12.5q-53 0 -97 -14.5t-78 -35t-58.5 -40t-36.5 -31.5z" />
<glyph unicode="3" d="M121 39l33 145q33 -16 104.5 -38.5t175.5 -22.5q162 0 230.5 64.5t68.5 172.5q0 70 -28.5 117t-75.5 76t-108.5 41t-129.5 12h-43v137h60q45 0 93 9.5t88 33t64.5 64.5t24.5 104q0 104 -64.5 148.5t-150.5 44.5q-88 0 -149.5 -25.5t-102.5 -52.5l-66 129q43 31 130 64.5 t194 33.5q100 0 172 -24.5t118 -69.5t68.5 -105.5t22.5 -131.5q0 -100 -52.5 -170t-133.5 -107q98 -29 169.5 -111.5t71.5 -220.5q0 -82 -27.5 -152.5t-84 -121.5t-145.5 -80t-212 -29q-47 0 -97 7.5t-93 18.5t-77 22.5t-48 17.5z" />
<glyph unicode="4" d="M74 324v114q35 82 95 188.5t136 220.5t162 223.5t174 197.5h164v-805h149v-139h-149v-324h-164v324h-567zM238 463h403v604q-55 -59 -111.5 -131t-109.5 -150.5t-99 -160.5t-83 -162z" />
<glyph unicode="5" d="M135 39l33 145q33 -16 101.5 -38.5t172.5 -22.5q82 0 137.5 18.5t89 50t49 72.5t15.5 86q0 70 -23.5 124t-82 91t-159.5 56.5t-255 19.5q12 90 19.5 169t12.5 153.5t8 148.5t7 156h610v-144h-462l-6 -74q-3 -46 -7 -98l-8 -98q-4 -47 -6 -76q274 -10 399 -120.5 t125 -297.5q0 -84 -26.5 -155.5t-83 -122.5t-143.5 -80t-206 -29q-49 0 -97 7.5t-91 17.5t-76 21.5t-47 19.5z" />
<glyph unicode="6" d="M111 508q0 184 50 326.5t143 238.5t226.5 147.5t300.5 53.5l15 -143q-109 -2 -198 -24t-158.5 -70t-116.5 -123.5t-72 -186.5q49 23 107.5 37t123.5 14q106 0 181 -32.5t120.5 -87t66 -126t20.5 -147.5q0 -70 -23 -142.5t-70 -133t-120.5 -98.5t-176.5 -38 q-211 0 -315 141.5t-104 393.5zM283 508q0 -80 11 -150.5t38.5 -125t75 -86t120.5 -31.5q61 0 102.5 25.5t68 64.5t38 87t11.5 91q0 125 -56.5 190.5t-177.5 65.5q-66 0 -120 -12.5t-109 -36.5q-2 -20 -2 -40v-42z" />
<glyph unicode="7" d="M129 1120v148h803v-142q-61 -72 -133 -192.5t-136.5 -271t-111.5 -321.5t-59 -341h-175q10 145 52.5 308t101.5 315.5t131 282.5t141 214h-614z" />
<glyph unicode="8" d="M104 319q0 109 59.5 193t141.5 135q-174 98 -174 301q0 70 26.5 133.5t76 110.5t120 75.5t158.5 28.5q102 0 175 -30.5t118 -78.5t65.5 -106.5t20.5 -113.5q0 -109 -55.5 -188t-126.5 -126q211 -100 211 -323q0 -160 -101.5 -258.5t-308.5 -98.5q-119 0 -196.5 32 t-124 82t-66 111.5t-19.5 120.5zM268 317q0 -33 12.5 -68.5t41 -66t75.5 -50t115 -19.5q63 0 109.5 17t76 47t44 67t14.5 73q0 117 -84 179.5t-232 95.5q-82 -45 -127 -113t-45 -162zM297 963q0 -84 60.5 -157t199.5 -106q78 45 124 106.5t46 160.5q0 27 -12.5 60.5t-38 61 t-66.5 47t-98 19.5q-59 0 -99 -18.5t-67 -46t-38 -61t-11 -66.5z" />
<glyph unicode="9" d="M104 885q0 70 23 142.5t70 132t120.5 98t176.5 38.5q209 0 315 -143t106 -393q0 -379 -184 -570.5t-555 -193.5l-6 143q229 0 369.5 91.5t185.5 314.5q-49 -23 -108.5 -36t-124.5 -13q-109 0 -182.5 31.5t-119 86t-66 124t-20.5 147.5zM276 889q0 -125 56.5 -189.5 t177.5 -64.5q66 0 122 12t109 35q2 20 2 39v39q0 80 -11 151.5t-38.5 125t-76 85t-121.5 31.5q-61 0 -102.5 -25.5t-68 -63.5t-38 -85t-11.5 -90z" />
<glyph unicode=":" d="M362 131q0 63 41 110.5t111 47.5q68 0 109 -47t41 -111q0 -61 -41 -108.5t-109 -47.5q-70 0 -111 47.5t-41 108.5zM362 793q0 63 41 110t111 47q68 0 109 -47t41 -110q0 -61 -41 -108.5t-109 -47.5q-70 0 -111 47.5t-41 108.5z" />
<glyph unicode=";" d="M256 -162l73 17q36 8 66.5 23.5t55 39t38.5 64.5q-66 6 -95 50t-29 87q0 82 46 124t105 42q76 0 115 -54.5t39 -132.5q0 -59 -23.5 -123.5t-72 -121t-120 -96.5t-169.5 -52zM362 793q0 63 41 110t111 47q68 0 109 -47t41 -110q0 -61 -41 -108.5t-109 -47.5 q-70 0 -111 47.5t-41 108.5z" />
<glyph unicode="&#x3c;" d="M100 449v145l791 336l47 -142l-649 -266l649 -268l-47 -141z" />
<glyph unicode="=" d="M94 270v146h838v-146h-838zM94 659v146h838v-146h-838z" />
<glyph unicode="&#x3e;" d="M100 254l650 268l-650 266l47 142l791 -336v-145l-791 -336z" />
<glyph unicode="?" d="M188 1223q61 35 139 54t167 19q104 0 170.5 -28.5t105.5 -72.5t54.5 -97.5t15.5 -102.5q0 -61 -23.5 -109t-58.5 -91t-76 -82t-76 -81t-58.5 -91t-23.5 -109h-145l-2 39q0 88 45 152.5t99 120t99.5 110.5t45.5 127q0 78 -49.5 125t-145.5 47q-59 0 -117.5 -14.5 t-117.5 -46.5zM330 114.5q0 63.5 40 101.5t97 38q55 0 96 -38t41 -101.5t-41 -101.5t-96 -38q-57 0 -97 38t-40 101.5z" />
<glyph unicode="@" d="M82 498q0 211 38 362.5t104.5 247.5t154.5 142t190 46q180 0 284.5 -121.5t104.5 -338.5v-707q-61 -25 -124.5 -34t-116.5 -9q-72 0 -133.5 23.5t-107.5 72.5t-71.5 126t-25.5 184q0 190 98 289.5t256 99.5q16 0 31.5 -1t32.5 -3q0 129 -53.5 204.5t-170.5 75.5 q-72 0 -131 -35t-102 -111.5t-67.5 -197.5t-24.5 -293q0 -129 24.5 -248.5t76.5 -210t133 -144.5t194 -54q82 0 170 26l16 -137q-109 -29 -200 -28q-150 0 -259.5 66.5t-180 175t-105.5 248t-35 284.5zM543 492q0 -41 5 -88.5t23.5 -87.5t52 -67.5t93.5 -27.5q16 0 36.5 2 t43.5 8v502q-18 6 -36 8t-34 2q-88 0 -136 -68t-48 -183z" />
<glyph unicode="A" d="M18 0l78 293q43 158 93 323l106 333q55 167 117 319h209q59 -152 113 -319l103 -333l91 -323l78 -293h-179l-75 332h-488l-74 -332h-172zM303 471h410q-47 184 -101.5 355t-101.5 294q-47 -129 -102.5 -299t-104.5 -350z" />
<glyph unicode="B" d="M111 20v1229q31 8 70.5 14.5t81.5 9.5t82 5t73 2q94 0 176 -16.5t142.5 -55.5t94 -102.5t33.5 -157.5q0 -45 -14 -87t-40 -79t-59.5 -64.5t-72.5 -41.5q104 -29 175 -105.5t71 -199.5q0 -188 -121 -284.5t-385 -96.5q-31 0 -72 2t-82 5t-81.5 9t-71.5 14zM279 139 q4 -2 46 -5t105.5 -3t121.5 10.5t103 38t73 72.5t28 117q0 63 -25.5 106t-67.5 68.5t-97.5 37t-114.5 11.5h-172v-453zM279 731h133q51 0 102 10.5t92 33t65.5 61t24.5 98.5q0 55 -22.5 94t-59 63.5t-85 35t-101.5 10.5t-93 -1.5t-56 -5.5v-399z" />
<glyph unicode="C" d="M94 635q0 162 42 284.5t114 206.5t168 127t205 43q76 0 154.5 -20.5t154.5 -67.5l-49 -139q-135 78 -254 78q-84 0 -150.5 -36t-114 -103.5t-73 -161.5t-25.5 -211q0 -131 28 -227.5t77 -160t117.5 -94t148.5 -30.5q59 0 124.5 15.5t135.5 54.5l45 -140 q-72 -41 -152.5 -60.5t-173.5 -19.5q-113 0 -208 40t-164.5 121t-109.5 206t-40 295z" />
<glyph unicode="D" d="M111 20v1229q129 31 256 31q123 0 228 -35t182 -112.5t121 -200.5t44 -297q0 -176 -44 -299t-121 -200t-182.5 -111.5t-227.5 -34.5q-127 -1 -256 30zM279 141q51 -6 104 -6q92 0 163.5 27.5t121 88t76 156t26.5 228.5q0 258 -99.5 379t-293.5 121q-27 0 -52.5 -1 t-45.5 -6v-987z" />
<glyph unicode="E" d="M186 0v1268h711v-144h-543v-389h475v-143h-475v-449h588v-143h-756z" />
<glyph unicode="F" d="M186 0v1268h719v-144h-551v-395h486v-141h-486v-588h-168z" />
<glyph unicode="G" d="M94 635q0 160 41 282.5t111.5 206.5t165 128t202.5 44q70 0 123.5 -10t91 -24.5t62.5 -29.5l37 -24l-56 -141q-47 37 -111.5 60.5t-135.5 23.5q-78 0 -144.5 -37t-114 -104.5t-74 -162.5t-26.5 -212q0 -115 23.5 -209t68.5 -161.5t112 -105.5t153 -38q59 0 92 8t49 16 v480h168v-594q-39 -14 -125 -36t-203 -22q-115 0 -209 44t-160.5 128t-103.5 208t-37 282z" />
<glyph unicode="H" d="M92 0v1268h168v-535h504v535h168v-1268h-168v590h-504v-590h-168z" />
<glyph unicode="I" d="M182 0v143h246v981h-246v144h660v-144h-246v-981h246v-143h-660z" />
<glyph unicode="J" d="M111 76l67 137q39 -29 103.5 -61.5t150.5 -32.5q131 0 195.5 69.5t64.5 235.5v700h-432v144h600v-860q0 -90 -19.5 -170t-67.5 -138.5t-129 -92.5t-204 -34t-206.5 35t-122.5 68z" />
<glyph unicode="K" d="M131 0v1268h168v-566q133 137 255 287t214 279h195q-100 -150 -220 -297.5t-260 -294.5q66 -55 139.5 -129t144.5 -161t133.5 -185.5t105.5 -200.5h-191q-51 94 -110.5 184t-126 168t-137 142.5t-142.5 111.5v-606h-168z" />
<glyph unicode="L" d="M186 0v1268h168v-1125h588v-143h-756z" />
<glyph unicode="M" d="M66 0q6 156 14 319.5t19.5 325.5t26.5 319.5t34 303.5h155l199 -631l197 631h157q41 -299 58.5 -612.5t31.5 -655.5h-163l-4.5 240t-5.5 266l-6 278q-3 141 -7 275l-184 -578h-148l-188 578q-2 -133 -5 -274l-6 -278l-7 -267q-3 -129 -5 -240h-163z" />
<glyph unicode="N" d="M113 0v1268h172l146 -269q62 -115 114.5 -222t101.5 -221l111 -263v975h153v-1268h-172l-131 308l-118 259l-111 229l-113 216v-1012h-153z" />
<glyph unicode="O" d="M59 635q0 170 33 295t92.5 206t142.5 120.5t185 39.5q100 0 184 -39.5t143.5 -120.5t93.5 -206t34 -295t-34 -295t-93.5 -207t-143.5 -121t-184 -39q-102 0 -185 39t-142.5 121t-92.5 207t-33 295zM231 635q0 -250 68 -383t209 -133q143 0 215 133t72 383t-72 383 t-215 133q-141 0 -209 -133t-68 -383z" />
<glyph unicode="P" d="M150 0v1249q37 8 80.5 14.5t87.5 10.5t86 5t77 1q113 0 198 -28.5t141.5 -81t84 -124t27.5 -159.5q0 -199 -117 -306.5t-350 -107.5h-148v-473h-167zM317 616h140q154 0 228.5 61.5t74.5 203.5q0 254 -266 254q-53 0 -102.5 -1t-74.5 -6v-512z" />
<glyph unicode="Q" d="M59 633q0 170 33 295t92.5 205.5t142.5 120.5t185 40q100 0 184 -40t143.5 -120.5t93.5 -205.5t34 -295q0 -152 -27 -267.5t-76 -197.5t-118.5 -129t-153.5 -62q6 -41 34.5 -70.5t72.5 -51t100.5 -36t118.5 -22.5l-39 -135q-84 14 -161 36.5t-138.5 59.5t-104.5 90.5 t-57 131.5q-166 35 -262.5 193.5t-96.5 459.5zM231 633q0 -250 68 -383t209 -133q143 0 215 133t72 383t-72 383t-215 133q-141 0 -209 -133t-68 -383z" />
<glyph unicode="R" d="M113 0v1249q31 8 70.5 14.5t81.5 9.5t83 5t74 2q229 0 345 -100.5t116 -298.5q0 -117 -61.5 -206t-166.5 -138l69 -112l77 -133l77 -146q38 -75 70 -146h-180q-61 147 -134 282.5t-140 219.5q-12 -2 -36 -2h-32h-143v-500h-170zM283 639h108q74 0 132.5 10t100.5 38 t64.5 76t22.5 126q0 74 -22.5 121t-59.5 74.5t-87 39t-106 11.5q-47 0 -91 -1t-62 -6v-489z" />
<glyph unicode="S" d="M113 61l51 140q41 -23 121 -52.5t194 -29.5q129 0 196.5 49t67.5 147q0 59 -24.5 101.5t-65.5 74t-92 55t-104 44.5q-61 25 -117.5 55.5t-100.5 71.5t-70 96t-26 131q0 166 104.5 259t291.5 93q51 0 101 -7t93 -17t77 -24.5t54 -28.5l-53 -142q-41 25 -112.5 49.5 t-159.5 24.5q-92 0 -160 -46t-68 -138q0 -53 19.5 -90t53.5 -65t79 -50.5t98 -44.5q78 -33 142.5 -66t110.5 -78t71.5 -106t25.5 -150q0 -166 -111.5 -255t-320.5 -89q-68 0 -127 9.5t-105 23.5t-81 28.5t-53 26.5z" />
<glyph unicode="T" d="M80 1124v144h864v-144h-348v-1124h-168v1124h-348z" />
<glyph unicode="U" d="M98 436v832h168v-813q0 -96 17.5 -161t49.5 -103.5t77 -55t102 -16.5t102 16.5t77 55t49.5 103t17.5 161.5v813h168v-832q0 -106 -22.5 -192t-72 -145.5t-128 -92.5t-191.5 -33t-191.5 33t-128 92.5t-72 145.5t-22.5 192z" />
<glyph unicode="V" d="M27 1268h182q25 -129 62.5 -281.5t79.5 -305.5t85 -292t80 -244l77 246q44 141 87 294t81 304.5t62 278.5h176q-16 -82 -53 -220.5t-88 -309.5l-114 -362q-62 -191 -130 -376h-208l-124 375l-112 361q-51 171 -88 310.5t-55 221.5z" />
<glyph unicode="W" d="M66 1268h163l23 -1059l184 577h148l188 -577l23 1059h163q-6 -172 -15 -344t-21.5 -335t-26.5 -312.5t-31 -276.5h-155l-199 631l-197 -631h-157q-18 125 -31.5 275.5t-25 314.5t-19.5 336t-14 342z" />
<glyph unicode="X" d="M51 0q68 152 158 329t192 341l-329 598h186l248 -486l266 486h182l-336 -592q98 -160 190.5 -332t164.5 -344h-187l-53 125l-65 143q-35 74 -75 147.5t-83 137.5q-72 -115 -143.5 -263.5l-133.5 -289.5h-182z" />
<glyph unicode="Y" d="M27 1268h188q59 -172 136 -329l165 -323q94 174 167 331t132 321h184q-78 -201 -178 -391.5t-223 -401.5v-475h-168v471q-125 205 -226 399.5t-177 397.5z" />
<glyph unicode="Z" d="M111 0v111q63 129 140 265l157 267l159 254l154 227h-580v144h774v-131q-66 -90 -146 -214l-165 -259l-163 -272q-79 -136 -138 -249h629v-143h-821z" />
<glyph unicode="[" d="M293 -338v1770h489v-134h-329v-1503h329v-133h-489z" />
<glyph unicode="\" d="M143 1432h170l568 -1770h-172z" />
<glyph unicode="]" d="M242 -205h329v1503h-329v134h489v-1770h-489v133z" />
<glyph unicode="^" d="M82 645l354 623h152l354 -623l-135 -70l-295 517l-295 -517z" />
<glyph unicode="_" d="M16 -195h992v-143h-992v143z" />
<glyph unicode="`" d="M334 1311l108 108l234 -282l-86 -76z" />
<glyph unicode="a" d="M119 283q0 82 35.5 138t92 91t129.5 50.5t146 15.5q100 0 197 -23v47q0 43 -9.5 83t-35 73t-69.5 52t-113 19q-88 0 -154 -12t-100 -24l-21 139q35 16 116 28.5t173 12.5q106 0 179 -26.5t118 -74t63.5 -115t18.5 -147.5v-594q-59 -10 -156.5 -24.5t-200.5 -14.5 q-78 0 -151.5 13.5t-131 47.5t-92 93.5t-34.5 151.5zM291 285q0 -92 62.5 -128t168.5 -36q63 0 113.5 4t83.5 10v283q-33 10 -79 16t-97 6q-47 0 -92 -7t-80 -25.5t-57.5 -48t-22.5 -74.5z" />
<glyph unicode="b" d="M145 27v1364l170 28v-504q31 18 89.5 38t130.5 20q96 0 171.5 -37t128 -102.5t80 -156.5t27.5 -202q0 -115 -32.5 -207t-92 -156.5t-143.5 -99.5t-187 -35q-113 0 -201 17t-141 33zM315 147q39 -10 78 -15t74 -5q141 0 221 87t80 261q0 74 -14.5 138.5t-45 110.5 t-78.5 72.5t-116 26.5q-59 0 -114.5 -23.5t-84.5 -49.5v-603z" />
<glyph unicode="c" d="M100 473q0 129 41 223.5t113 155.5t167 91t204 30q70 0 138 -9.5t146 -33.5l-39 -146q-68 25 -124 32t-113 7q-74 0 -139.5 -19.5t-113.5 -61.5t-77 -108.5t-29 -160.5q0 -90 27 -154.5t75 -106.5t115.5 -62.5t149.5 -20.5q66 0 126 7t132 32l25 -141 q-72 -27 -145.5 -38.5t-160.5 -11.5q-115 0 -210 32t-163.5 93.5t-106.5 154.5t-38 216z" />
<glyph unicode="d" d="M82 475q0 111 27.5 202t81 156.5t128 102.5t170.5 37q76 0 133.5 -18.5t86.5 -39.5v476l170 28v-1392q-55 -16 -141.5 -33t-200.5 -17q-102 0 -186.5 35t-144 99.5t-92 156.5t-32.5 207zM256 475q0 -166 78 -256t203 -90q63 0 107 6t65 12v603q-29 27 -84.5 50t-114.5 23 q-68 0 -116 -26.5t-78.5 -72.5t-45 -110.5t-14.5 -138.5z" />
<glyph unicode="e" d="M82 473q0 127 39 221t102.5 155.5t143 92.5t163.5 31q193 0 297.5 -120t104.5 -364v-59h-680q10 -147 97 -224t245 -77q90 0 153.5 14.5t96.5 30.5l22 -143q-31 -16 -110.5 -35t-180.5 -19q-123 0 -216 38t-154.5 103.5t-92 157t-30.5 197.5zM256 567h504 q0 121 -63.5 191.5t-168.5 70.5q-59 0 -107 -22.5t-83 -59t-55.5 -84t-26.5 -96.5z" />
<glyph unicode="f" d="M129 809v141h201v86q0 111 30.5 183.5t81 117.5t117 63.5t140 18.5t148.5 -16.5t140 -38.5l-31 -145q-45 23 -112.5 39t-136.5 16q-43 0 -81 -11.5t-67 -39t-45 -73.5t-16 -116v-84h383v-141h-383v-809h-168v809h-201z" />
<glyph unicode="g" d="M82 496q0 104 29.5 191t86 150.5t138.5 99.5t186 36q123 0 210 -17.5t147 -33.5v-848q0 -221 -112 -319.5t-337 -98.5q-92 0 -167 14.5t-132 34.5l31 150q53 -23 121.5 -37.5t150.5 -14.5q147 0 211 59.5t64 192.5v33q-29 -16 -88.5 -34.5t-137.5 -18.5 q-84 0 -156.5 27.5t-127 84t-86 143.5t-31.5 206zM256 494q0 -82 19.5 -140.5t53 -96.5t77 -55.5t92.5 -17.5q63 0 119.5 18.5t91.5 43.5v555q-25 8 -68 15t-117 7q-131 0 -199.5 -89.5t-68.5 -239.5z" />
<glyph unicode="h" d="M145 1391l170 28v-483q41 16 92.5 25.5t100.5 9.5q109 0 181.5 -32t115.5 -89t61.5 -137t18.5 -176v-537h-168v500q0 176 -49.5 248.5t-175.5 72.5q-53 0 -103.5 -11t-73.5 -22v-788h-170v1391z" />
<glyph unicode="i" d="M111 809v141h442v-583q0 -141 39 -189.5t117 -48.5q59 0 109 14.5t79 30.5l25 -143q-12 -6 -35 -15.5t-52.5 -17.5t-65.5 -14.5t-75 -6.5q-90 0 -149.5 25t-95 74t-50 121.5t-14.5 169.5v442h-274zM297 1234.5q0 63.5 39 100.5t92 37q55 0 93 -37t38 -100.5t-38 -100 t-93 -36.5q-53 0 -92 36.5t-39 100z" />
<glyph unicode="j" d="M145 -281l52 144q51 -25 113.5 -42.5t119.5 -17.5q82 0 135 42t53 163v801h-385v141h553v-940q0 -98 -27.5 -166.5t-73.5 -111.5t-106.5 -61.5t-127.5 -18.5q-78 0 -157 16t-149 51zM500 1234.5q0 63.5 39 100.5t92 37q55 0 93 -37t38 -100.5t-38 -100t-93 -36.5 q-53 0 -92 36.5t-39 100z" />
<glyph unicode="k" d="M145 0v1391l170 28v-866l226 196q113 97 202 201h199q-88 -104 -212 -215l-243 -213q55 -41 125 -103.5t138.5 -134t130 -146.5t98.5 -138h-201q-39 63 -96 130t-121.5 128t-129 112.5t-116.5 86.5v-457h-170z" />
<glyph unicode="l" d="M111 1266v143h442v-1042q0 -72 9 -117t28.5 -72.5t48.5 -38t68 -10.5q59 0 110 14.5t80 30.5l25 -143q-12 -6 -35 -15.5t-53.5 -17.5t-66.5 -14.5t-75 -6.5q-90 0 -149.5 25t-94 74t-49 121.5t-14.5 169.5v899h-274z" />
<glyph unicode="m" d="M84 0v924q123 47 231 47q59 0 111.5 -17.5t89.5 -54.5q88 72 189 72q49 0 93 -18.5t77.5 -55.5t54 -92t20.5 -129v-676h-153v680q0 74 -33 112.5t-82 38.5q-25 0 -51.5 -12t-48.5 -39q12 -47 12 -104v-309h-154v311q0 72 -22.5 112.5t-87.5 40.5q-41 0 -92 -18v-813h-154 z" />
<glyph unicode="n" d="M145 0v924q92 23 183.5 35t171.5 12q190 0 287.5 -98.5t97.5 -315.5v-557h-168v526q0 92 -16.5 149.5t-46 89.5t-71.5 44t-91 12q-41 0 -87.5 -5t-89.5 -13v-803h-170z" />
<glyph unicode="o" d="M82 475q0 113 31.5 205t89 156.5t136.5 100.5t171 36q94 0 174 -36t137.5 -100.5t89 -156.5t31.5 -205t-31.5 -204t-89 -156.5t-137.5 -101.5t-174 -36q-92 0 -171 36t-136.5 101.5t-89 156.5t-31.5 204zM256 475q0 -160 68.5 -253t185.5 -93q119 0 188.5 93t69.5 253 q0 162 -69.5 255t-188.5 93q-117 0 -185.5 -93t-68.5 -255z" />
<glyph unicode="p" d="M145 -338v1260q55 16 142.5 32.5t199.5 16.5q102 0 186.5 -35t144 -99.5t92 -156.5t32.5 -207q0 -109 -27.5 -200t-80 -156.5t-128 -102.5t-171.5 -37q-76 0 -133.5 18.5t-86.5 41.5v-375h-170zM315 201q29 -27 84.5 -49.5t114.5 -22.5q68 0 116 26.5t78.5 72.5t45 108.5 t14.5 136.5q0 166 -78 257t-203 91q-70 0 -109.5 -6t-62.5 -14v-600z" />
<glyph unicode="q" d="M82 473q0 115 32.5 207t92 156.5t144.5 99.5t188 35q111 0 195.5 -17.5t144.5 -33.5v-1258h-170v375q-31 -20 -88.5 -40t-128.5 -20q-96 0 -172 37t-128.5 102.5t-81 156.5t-28.5 200zM256 473q0 -74 15.5 -136.5t46 -108.5t78.5 -72.5t116 -26.5q59 0 114.5 22.5 t84.5 49.5v600q-23 8 -63 14t-109 6q-125 0 -204 -91t-79 -257z" />
<glyph unicode="r" d="M219 0v899q209 72 422 72q66 0 125 -5t131 -22l-31 -149q-66 18 -116 23t-109 5q-125 0 -254 -35v-788h-168z" />
<glyph unicode="s" d="M135 43l33 154q72 -33 150.5 -54.5t168.5 -21.5q231 0 232 117q0 51 -42 83.5t-104.5 57t-136.5 48.5t-136 58.5t-104 86t-42 133.5q0 115 93 191.5t292 76.5q78 0 160.5 -11.5t142.5 -29.5l-31 -152q-16 8 -45 17.5t-65.5 16.5t-78.5 11t-81 4q-221 0 -222 -120 q0 -43 42 -73t105.5 -54.5t137.5 -50t137.5 -62.5t105.5 -89t42 -132q0 -129 -100.5 -200t-317.5 -71q-98 0 -180 16.5t-156 49.5z" />
<glyph unicode="t" d="M129 809v141h201v267l168 28v-295h401v-141h-401v-442q0 -72 10 -117t33.5 -72.5t60.5 -38t90 -10.5q74 0 119 12.5t86 32.5l25 -143q-29 -12 -91.5 -33t-154.5 -21q-106 0 -174 25t-106 74t-52 121.5t-14 169.5v442h-201z" />
<glyph unicode="u" d="M139 416v534h168v-497q0 -176 52.5 -250t175.5 -74q27 0 54 2t52 5t43 6t25 5v803h170v-923q-55 -14 -146.5 -30.5t-214.5 -16.5q-109 0 -180.5 31.5t-116.5 90t-63.5 138.5t-18.5 176z" />
<glyph unicode="v" d="M61 950h185q25 -90 56 -190l67 -201l70.5 -193.5t70.5 -166.5q35 74 73 167t74 193l71 201q34 100 58 190h177q-37 -133 -84 -261l-97 -250q-49 -122 -100 -232l-98 -207h-154q-96 193 -194.5 438.5t-174.5 511.5z" />
<glyph unicode="w" d="M39 950h160q6 -80 13 -156.5t17.5 -160.5l23.5 -182l30 -222q33 82 55 143.5l41 116.5l36 113l38 129h127l36 -129q16 -57 35 -113l39 -116q20 -61 51 -142l32.5 209.5t25 181.5t18.5 164.5t14 163.5h154q-10 -102 -24.5 -219t-35 -239.5t-45 -248.5t-51.5 -243h-127 q-31 70 -53 127l-44 115l-43 119l-50 143l-51 -143l-44 -119l-45 -115l-55 -127h-127q-57 252 -95 498.5t-56 451.5z" />
<glyph unicode="x" d="M59 0q68 123 165 253l192 247l-342 450h190l256 -332l236 332h180l-313 -440l185 -252q93 -131 159 -258h-189q-20 41 -50 90l-64.5 101.5t-72.5 103.5l-75 96l-78 -98q-41 -51 -79 -104l-70 -101q-33 -49 -56 -88h-174z" />
<glyph unicode="y" d="M74 -315l30 137q18 -10 52 -16.5t63 -6.5q100 0 156.5 44t103.5 145q-115 217 -215 465.5t-166 496.5h185q20 -82 47.5 -177t62.5 -195.5t75 -202t85 -193.5q33 94 61.5 186.5t53.5 185.5l49 190l51 206h176q-66 -266 -146.5 -516t-172.5 -463q-35 -82 -75 -141t-87 -98 t-106.5 -57.5t-135.5 -18.5q-39 0 -85 10.5t-62 18.5z" />
<glyph unicode="z" d="M150 0v113q43 82 107.5 179l133.5 192l136 182q67 86 116 143h-467v141h684v-127l-100 -120l-136 -169q-73 -93 -144.5 -195.5t-127.5 -195.5h522v-143h-724z" />
<glyph unicode="{" d="M162 481v131h82q35 0 61.5 15.5t44 41t26.5 57.5t9 65v329q0 76 15.5 133.5t52 97.5t99 60.5t157.5 20.5h165v-134h-174q-86 0 -121.5 -38.5t-35.5 -141.5v-282q0 -137 -41 -202t-94 -87q53 -25 94 -92.5t41 -196.5v-283q0 -102 36.5 -141t122.5 -39h172v-133h-165 q-94 0 -157 20.5t-99.5 60.5t-52 97.5t-15.5 132.5v330q0 31 -9 62.5t-26.5 57.5t-43 42t-60.5 16h-84z" />
<glyph unicode="|" d="M434 -338v1770h158v-1770h-158z" />
<glyph unicode="}" d="M150 -205h174q86 0 121.5 39t35.5 141v283q0 137 41 201.5t94 87.5q-53 25 -94 92.5t-41 196.5v282q0 102 -36.5 141t-122.5 39h-172v134h165q94 0 157 -20.5t100.5 -60.5t53 -97.5t15.5 -133.5v-329q0 -31 8 -63t25.5 -57.5t43 -42t60.5 -16.5h84v-131h-82 q-35 0 -60.5 -15t-43 -41t-26.5 -57.5t-9 -64.5v-330q0 -76 -15.5 -133t-53 -97t-100 -60.5t-157.5 -20.5h-165v133z" />
<glyph unicode="~" d="M76 434q6 35 22.5 80t45 84t72.5 65.5t110 26.5q55 0 101 -21.5t89 -47.5l95 -58q46 -29 98 -28q29 0 49 13t33.5 33.5t23.5 46t16 48.5l117 -33q-6 -35 -21.5 -80t-45 -84t-74.5 -65.5t-109 -26.5q-55 0 -101 21.5t-89 48.5l-94 57q-45 29 -99 29q-29 0 -49 -13.5 t-33.5 -34t-23.5 -46t-16 -48.5z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa2;" d="M100 532q0 109 31 192t86 142.5t132 94t167 47.5v260h152v-254q55 -4 110.5 -13.5t118.5 -29.5l-37 -142q-68 25 -123 32t-112 7q-74 0 -138.5 -19.5t-111.5 -59t-74 -104t-27 -153.5q0 -170 101.5 -250.5t265.5 -80.5q66 0 125 8t131 33l25 -140q-61 -23 -123 -33 t-131 -14v-254h-152v258q-188 27 -302 145.5t-114 327.5z" />
<glyph unicode="&#xa3;" d="M92 545v137h170v152q0 135 28.5 224t80 140t124 71.5t162.5 20.5q80 0 134.5 -13t105.5 -36l-41 -145q-92 45 -207 45q-49 0 -89 -14.5t-69.5 -49.5t-45 -93t-15.5 -146v-156h348v-137h-348v-15q0 -92 -7 -192t-22 -193h531v-145h-721q20 131 35.5 259t15.5 259v27h-170z " />
<glyph unicode="&#xa5;" d="M27 1268h186q66 -143 143.5 -285.5t161.5 -273.5q80 131 155 273t140 286h186l-170 -311q-88 -157 -188 -316h252v-131h-295v-186h295v-129h-295v-195h-168v195h-297v129h297v186h-297v131h250q-100 160 -189 318z" />
<glyph unicode="&#xa9;" d="M70 473q0 125 38.5 219t101 156.5t142.5 93.5t162 31t162 -31t141.5 -93.5t99 -155.5t37.5 -216q0 -125 -38.5 -218t-101 -155.5t-142.5 -94.5t-162 -32q-84 0 -163 32t-140.5 93.5t-99 154.5t-37.5 216zM188 477q0 -98 28 -171t74 -121t103.5 -72.5t118.5 -24.5 t119.5 24.5t103.5 72.5t73 120t28 168q0 98 -28 171t-74 121t-103.5 72.5t-118.5 24.5t-118.5 -24.5t-103.5 -72.5t-74 -121t-28 -167zM291 469q0 49 14 96t43 84t73 59.5t105 22.5q33 0 69 -5t71 -21l-41 -111q-23 10 -45.5 13t-40.5 3q-66 0 -93.5 -41t-27.5 -92 q0 -66 33.5 -103.5t95.5 -37.5q18 0 41.5 4t46.5 14l35 -108q-35 -16 -73 -24.5t-73 -8.5q-59 0 -103 21.5t-73 57.5t-43 82t-14 95z" />
<glyph unicode="&#xad;" d="M287 440v160h450v-160h-450z" />
<glyph unicode="&#xae;" d="M70 473q0 125 38.5 219t101 156.5t142.5 93.5t162 31t162 -31t141.5 -93.5t99 -155.5t37.5 -216q0 -125 -38.5 -218t-101 -155.5t-142.5 -94.5t-162 -32q-84 0 -163 32t-140.5 93.5t-99 154.5t-37.5 216zM188 477q0 -98 28 -171t74 -121t103.5 -72.5t118.5 -24.5 t119.5 24.5t103.5 72.5t73 120t28 168q0 98 -28 171t-74 121t-103.5 72.5t-118.5 24.5t-118.5 -24.5t-103.5 -72.5t-74 -121t-28 -167zM340 225v488q29 8 63.5 13t73.5 5q117 0 173.5 -45t56.5 -131q0 -98 -82 -145q25 -35 51 -83l53 -102h-117l-47 87q-20 38 -41 71h-73 v-158h-111zM451 485h36q55 0 82 14.5t27 61.5q0 41 -33 54.5t-67 13.5q-12 0 -23.5 -1t-21.5 -3v-140z" />
<glyph unicode="&#xb4;" d="M348 1137l234 282l110 -108l-258 -250z" />
<glyph unicode="&#x2000;" horiz-adv-x="727" />
<glyph unicode="&#x2001;" horiz-adv-x="1454" />
<glyph unicode="&#x2002;" horiz-adv-x="727" />
<glyph unicode="&#x2003;" horiz-adv-x="1454" />
<glyph unicode="&#x2004;" horiz-adv-x="483" />
<glyph unicode="&#x2005;" horiz-adv-x="362" />
<glyph unicode="&#x2006;" horiz-adv-x="241" />
<glyph unicode="&#x2007;" horiz-adv-x="241" />
<glyph unicode="&#x2008;" horiz-adv-x="180" />
<glyph unicode="&#x2009;" horiz-adv-x="290" />
<glyph unicode="&#x200a;" horiz-adv-x="79" />
<glyph unicode="&#x2010;" d="M287 440v160h450v-160h-450z" />
<glyph unicode="&#x2011;" d="M287 440v160h450v-160h-450z" />
<glyph unicode="&#x2012;" d="M287 440v160h450v-160h-450z" />
<glyph unicode="&#x2013;" d="M141 483v144h742v-144h-742z" />
<glyph unicode="&#x2014;" d="M0 483v144h1024v-144h-1024z" />
<glyph unicode="&#x2018;" d="M305 1061q0 59 23.5 123.5t70.5 121t120 96.5t169 52l31 -133l-73 -16q-36 -8 -66.5 -23.5t-55 -40t-39.5 -63.5q66 -6 95.5 -50.5t29.5 -87.5q0 -82 -47 -124t-104 -42q-76 0 -115 54.5t-39 132.5z" />
<glyph unicode="&#x2019;" d="M303 1001l73 17q36 8 66.5 23.5t55 39t39.5 64.5q-66 6 -95.5 50t-29.5 87q0 82 47 124t104 42q76 0 115 -54.5t39 -131.5q0 -59 -23.5 -124t-72 -121t-120 -96t-167.5 -53z" />
<glyph unicode="&#x201c;" d="M88 1071q0 57 17.5 114.5t57.5 104.5t106.5 82t166.5 47l29 -119l-68 -15q-33 -7 -61.5 -21.5t-51 -36t-34.5 -58.5q59 -6 89 -46t30 -89q0 -51 -33 -93t-103 -42q-59 0 -102 41t-43 131zM561 1071q0 57 17.5 114.5t57.5 104.5t106.5 82t166.5 47l29 -119l-68 -15 q-33 -7 -60.5 -21.5t-50 -36t-34.5 -58.5q59 -6 89 -46t30 -89q0 -51 -34 -93t-101 -42q-59 0 -103.5 41t-44.5 131z" />
<glyph unicode="&#x201d;" d="M86 1018l68 15q33 7 60.5 21.5t50 37t34.5 59.5q-59 4 -89 45t-30 88q0 51 34 93t101 42q59 0 103.5 -41t44.5 -131q0 -59 -17.5 -115.5t-57.5 -103.5t-106.5 -82t-166.5 -47zM559 1018l68 15q33 7 61.5 21.5t51 37t34.5 59.5q-59 4 -89 45t-30 88q0 51 33 93t103 42 q59 0 102 -41t43 -131q0 -59 -17.5 -115.5t-57.5 -103.5t-106.5 -82t-164.5 -47z" />
<glyph unicode="&#x2022;" d="M233 647q0 57 19.5 110.5t55.5 94.5t87 64.5t117 23.5q63 0 115.5 -23.5t88.5 -64.5t55.5 -94t19.5 -111q0 -59 -19.5 -112.5t-55.5 -93.5t-88.5 -63.5t-115.5 -23.5q-66 0 -117 23.5t-87 63.5t-55.5 93.5t-19.5 112.5z" />
<glyph unicode="&#x2026;" d="M63 86q0 45 30 78t79 33t79 -33t30 -78t-30 -78t-79 -33t-79 33t-30 78zM408 86q0 45 28.5 78t77.5 33t78 -33t29 -78t-29 -78t-78 -33t-77.5 33t-28.5 78zM748 86q0 45 28.5 78t77.5 33t78 -33t29 -78t-29 -78t-78 -33t-77.5 33t-28.5 78z" />
<glyph unicode="&#x202f;" horiz-adv-x="290" />
<glyph unicode="&#x205f;" horiz-adv-x="362" />
<glyph unicode="&#x20ac;" d="M74 416v131h125q-2 20 -2 43v45v50q0 24 2 46h-125v131h143q37 217 154.5 322.5t312.5 105.5q82 0 134 -10t102 -29l-33 -143q-43 16 -95.5 26.5t-107.5 10.5q-139 0 -204.5 -77t-86.5 -206h408l-25 -131h-401q-2 -23 -2 -46v-50v-45q0 -23 2 -43h366l-24 -131h-328 q27 -164 101.5 -227.5t197.5 -63.5q78 0 133.5 13.5t98.5 35.5l36 -145q-31 -16 -107.5 -35t-170.5 -19q-213 0 -324.5 117t-140.5 324h-139z" />
<glyph unicode="&#x2122;" d="M37 1165v103h381v-103h-131v-434h-119v434h-131zM457 731q6 102 12 178t13 137.5t14.5 113.5t17.5 108h111l90 -279l96 279h111q10 -55 17 -108.5t13 -115t11.5 -137.5t11.5 -176h-119q0 8 -1 53t-2 103.5t-3 120t-4 102.5l-86 -238h-92l-80 238q-4 -41 -6 -102.5 t-3 -120t-2.5 -103.5t-1.5 -53h-118z" />
<glyph unicode="&#xe000;" horiz-adv-x="950" d="M0 950h950v-950h-950v950z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Binary file not shown.

3
fonts/verdana.css Normal file
View File

@ -0,0 +1,3 @@
.crayon-font-verdana * {
font-family: Verdana, Arial, sans !important;
}

250
global.php Normal file
View File

@ -0,0 +1,250 @@
<?php
// Switches
define('CRAYON_DEBUG', FALSE);
define('CRAYON_TAG_EDITOR', TRUE);
define('CRAYON_THEME_EDITOR', TRUE);
define('CRAYON_MINIFY', TRUE);
// Constants
// General definitions
define('CRAYON_DOMAIN', 'crayon-syntax-highlighter');
// These are overridden by functions since v1.1.1
$CRAYON_VERSION = '1.1.1';
$CRAYON_DATE = '27th September, 2011';
$CRAYON_AUTHOR = 'Aram Kocharyan';
$CRAYON_AUTHOR_SITE = 'http://aramk.com';
$CRAYON_DONATE = 'http://bit.ly/crayondonate';
$CRAYON_WEBSITE = 'https://github.com/aramk/crayon-syntax-highlighter';
$CRAYON_EMAIL = 'crayon.syntax@gmail.com';
$CRAYON_TWITTER = 'http://twitter.com/crayonsyntax';
$CRAYON_GIT = 'http://github.com/aramk/crayon-syntax-highlighter';
$CRAYON_PLUGIN_WP = 'https://wordpress.org/plugins/crayon-syntax-highlighter/';
// XXX Used to name the class
define('CRAYON_HIGHLIGHTER', 'CrayonHighlighter');
define('CRAYON_ELEMENT_CLASS', 'CrayonElement');
define('CRAYON_SETTING_CLASS', 'CrayonSetting');
// Directories
define('CRAYON_DIR', crayon_pf(basename(dirname(__FILE__))));
define('CRAYON_LANG_DIR', crayon_s('langs'));
define('CRAYON_THEME_DIR', crayon_s('themes'));
define('CRAYON_FONT_DIR', crayon_s('fonts'));
define('CRAYON_UTIL_DIR', crayon_s('util'));
define('CRAYON_CSS_DIR', crayon_s('css'));
define('CRAYON_CSS_SRC_DIR', CRAYON_CSS_DIR . crayon_s('src'));
define('CRAYON_CSS_MIN_DIR', CRAYON_CSS_DIR . crayon_s('min'));
define('CRAYON_JS_DIR', crayon_s('js'));
define('CRAYON_JS_SRC_DIR', CRAYON_JS_DIR . crayon_s('src'));
define('CRAYON_JS_MIN_DIR', CRAYON_JS_DIR . crayon_s('min'));
define('CRAYON_TRANS_DIR', crayon_s('trans'));
define('CRAYON_THEME_EDITOR_DIR', crayon_s('theme-editor'));
define('CRAYON_TAG_EDITOR_DIR', crayon_s('tag-editor'));
// Paths
define('CRAYON_ROOT_PATH', crayon_pf(dirname(__FILE__)));
define('CRAYON_LANG_PATH', CRAYON_ROOT_PATH . CRAYON_LANG_DIR);
define('CRAYON_THEME_PATH', CRAYON_ROOT_PATH . CRAYON_THEME_DIR);
define('CRAYON_FONT_PATH', CRAYON_ROOT_PATH . CRAYON_FONT_DIR);
define('CRAYON_UTIL_PATH', CRAYON_ROOT_PATH . CRAYON_UTIL_DIR);
define('CRAYON_TAG_EDITOR_PATH', CRAYON_ROOT_PATH . CRAYON_UTIL_DIR . CRAYON_TAG_EDITOR_DIR);
define('CRAYON_THEME_EDITOR_PATH', CRAYON_ROOT_PATH . CRAYON_UTIL_DIR . CRAYON_THEME_EDITOR_DIR);
// Files
define('CRAYON_LOG_FILE', CRAYON_ROOT_PATH . 'log.txt');
define('CRAYON_TOUCH_FILE', CRAYON_UTIL_PATH . 'touch.txt');
define('CRAYON_LOG_MAX_SIZE', 50000); // Bytes
define('CRAYON_README_FILE', CRAYON_ROOT_PATH . 'readme.txt');
define('CRAYON_LANG_EXT', CRAYON_LANG_PATH . 'extensions.txt');
define('CRAYON_LANG_ALIAS', CRAYON_LANG_PATH . 'aliases.txt');
define('CRAYON_LANG_DELIM', CRAYON_LANG_PATH . 'delimiters.txt');
define('CRAYON_HELP_FILE', CRAYON_UTIL_PATH . 'help.htm');
// Minified
define('CRAYON_JS_MIN', CRAYON_JS_MIN_DIR . 'crayon.min.js');
define('CRAYON_JS_TE_MIN', CRAYON_JS_MIN_DIR . 'crayon.te.min.js');
// Source
define('CRAYON_JQUERY_POPUP', CRAYON_JS_SRC_DIR . 'jquery.popup.js');
define('CRAYON_JS', CRAYON_JS_SRC_DIR . 'crayon.js');
define('CRAYON_JS_ADMIN', CRAYON_JS_SRC_DIR . 'crayon_admin.js');
define('CRAYON_JS_UTIL', CRAYON_JS_SRC_DIR . 'util.js');
define('CRAYON_CSSJSON_JS', CRAYON_JS_SRC_DIR . 'cssjson.js');
define('CRAYON_CSS_JQUERY_COLORPICKER', CRAYON_JS_DIR . 'jquery-colorpicker/jquery.colorpicker.css');
define('CRAYON_JS_JQUERY_COLORPICKER', CRAYON_JS_DIR . 'jquery-colorpicker/jquery.colorpicker.js');
define('CRAYON_JS_TINYCOLOR', CRAYON_JS_DIR . 'tinycolor-min.js');
define('CRAYON_TAG_EDITOR_JS', 'crayon_tag_editor.js');
define('CRAYON_COLORBOX_JS', 'colorbox/jquery.colorbox-min.js');
define('CRAYON_COLORBOX_CSS', 'colorbox/colorbox.css');
define('CRAYON_TAG_EDITOR_PHP', CRAYON_TAG_EDITOR_PATH . 'crayon_tag_editor_wp.class.php');
define('CRAYON_TINYMCE_JS', 'crayon_tinymce.js');
define('CRAYON_QUICKTAGS_JS', 'crayon_qt.js');
define('CRAYON_STYLE', CRAYON_CSS_SRC_DIR . 'crayon_style.css');
define('CRAYON_STYLE_ADMIN', CRAYON_CSS_SRC_DIR . 'admin_style.css');
define('CRAYON_STYLE_GLOBAL', CRAYON_CSS_SRC_DIR . 'global_style.css');
define('CRAYON_STYLE_MIN', CRAYON_CSS_MIN_DIR . 'crayon.min.css');
define('CRAYON_LOGO', CRAYON_CSS_DIR . 'images/crayon_logo.png');
define('CRAYON_DONATE_BUTTON', CRAYON_CSS_DIR . 'images/donate.png');
define('CRAYON_THEME_EDITOR_PHP', CRAYON_THEME_EDITOR_PATH . 'theme_editor.php');
define('CRAYON_THEME_EDITOR_JS', CRAYON_UTIL_DIR . CRAYON_THEME_EDITOR_DIR . 'theme_editor.js');
define('CRAYON_THEME_EDITOR_STYLE', CRAYON_UTIL_DIR . CRAYON_THEME_EDITOR_DIR . 'theme_editor.css');
define('CRAYON_THEME_EDITOR_BUTTON', CRAYON_CSS_DIR . 'images/theme_editor.png');
// PHP Files
define('CRAYON_FORMATTER_PHP', CRAYON_ROOT_PATH . 'crayon_formatter.class.php');
define('CRAYON_HIGHLIGHTER_PHP', CRAYON_ROOT_PATH . 'crayon_highlighter.class.php');
define('CRAYON_LANGS_PHP', CRAYON_ROOT_PATH . 'crayon_langs.class.php');
define('CRAYON_PARSER_PHP', CRAYON_ROOT_PATH . 'crayon_parser.class.php');
define('CRAYON_SETTINGS_PHP', CRAYON_ROOT_PATH . 'crayon_settings.class.php');
define('CRAYON_THEMES_PHP', CRAYON_ROOT_PATH . 'crayon_themes.class.php');
define('CRAYON_FONTS_PHP', CRAYON_ROOT_PATH . 'crayon_fonts.class.php');
define('CRAYON_RESOURCE_PHP', CRAYON_ROOT_PATH . 'crayon_resource.class.php');
define('CRAYON_UTIL_PHP', CRAYON_UTIL_DIR . 'crayon_util.class.php');
define('CRAYON_TIMER_PHP', CRAYON_UTIL_DIR . 'crayon_timer.class.php');
define('CRAYON_LOG_PHP', CRAYON_UTIL_DIR . 'crayon_log.class.php');
// Script time
define('CRAYON_LOAD_TIME', 'Load Time');
//define('CRAYON_PARSE_TIME', 'Parse Time');
define('CRAYON_FORMAT_TIME', 'Format Time');
// Printing
define('CRAYON_BR', "<br />");
define('CRAYON_NL', "\r\n");
define('CRAYON_BL', CRAYON_BR . CRAYON_NL);
define('CRAYON_DASH', "==============================================================================");
define('CRAYON_LINE', "------------------------------------------------------------------------------");
// Load utilities
require_once (CRAYON_UTIL_PHP);
require_once (CRAYON_TIMER_PHP);
require_once (CRAYON_LOG_PHP);
// Turn on the error & exception handlers
//crayon_handler_on();
// GLOBAL FUNCTIONS
// Check for forwardslash/backslash in folder path to structure paths
function crayon_s($url = '') {
$url = strval($url);
if (!empty($url) && !preg_match('#(\\\\|/)$#', $url)) {
return $url . '/';
} else if (empty($url)) {
return '/';
} else {
return $url;
}
}
// Returns path using forward slashes, slash added at the end
function crayon_pf($url, $slash = TRUE) {
$url = trim(strval($url));
if ($slash) {
$url = crayon_s($url);
}
return str_replace('\\', '/', $url);
}
// Returns path using back slashes
function crayon_pb($url) {
return str_replace('/', '\\', crayon_s(trim(strval($url))));
}
// Get/Set plugin information
function crayon_set_info($info_array) {
global $CRAYON_VERSION, $CRAYON_DATE, $CRAYON_AUTHOR, $CRAYON_WEBSITE;
if (!is_array($info_array)) {
return;
}
crayon_set_info_key('Version', $info_array, $CRAYON_VERSION);
crayon_set_info_key('Date', $info_array, $CRAYON_DATE);
crayon_set_info_key('AuthorName', $info_array, $CRAYON_AUTHOR);
crayon_set_info_key('PluginURI', $info_array, $CRAYON_WEBSITE);
}
function crayon_set_info_key($key, $array, &$info) {
if (array_key_exists($key, $array)) {
$info = $array[$key];
} else {
return FALSE;
}
}
function crayon_vargs(&$var, $default) {
$var = isset($var) ? $var : $default;
}
// Checks if the input is a valid PHP file and matches the $valid filename
function crayon_is_php_file($filepath, $valid) {
$path = pathinfo(crayon_pf($filepath));
return is_file($filepath) && $path['extension'] === 'php' && $path['filename'] === $valid;
}
// Stops the script if crayon_is_php_file() returns false or a remote path is given
function crayon_die_if_not_php($filepath, $valid) {
if (!crayon_is_php_file($filepath, $valid) || crayon_is_path_url($filepath)) {
die("[ERROR] '$filepath' is not a valid PHP file for '$valid'");
}
}
function crayon_is_path_url($path) {
$parts = parse_url($path);
return isset($parts['scheme']) && strlen($parts['scheme']) > 1;
}
// LANGUAGE TRANSLATION FUNCTIONS
function crayon_load_plugin_textdomain() {
if (function_exists('load_plugin_textdomain')) {
load_plugin_textdomain(CRAYON_DOMAIN, false, CRAYON_DIR . CRAYON_TRANS_DIR);
}
}
function crayon__($text) {
if (function_exists('__')) {
return __($text, CRAYON_DOMAIN);
} else {
return $text;
}
}
function crayon_e($text) {
if (function_exists('_e')) {
_e($text, CRAYON_DOMAIN);
} else {
echo $text;
}
}
function crayon_n($singular, $plural, $count) {
if (function_exists('_n')) {
return _n($singular, $plural, $count, CRAYON_DOMAIN);
} else {
return $count > 1 ? $plural : $singular;
}
}
function crayon_x($text, $context) {
if (function_exists('_x')) {
return _x($text, $context, CRAYON_DOMAIN);
} else {
return $text;
}
}
?>

1
js/jquery-colorpicker/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.svn

View File

@ -0,0 +1,231 @@
jQuery.colorpicker v0.9.3
Copyright (c) 2011-2012 Martijn W. van der Lee
Licensed under the MIT.
Full-featured colorpicker for jQueryUI with full theming support.
Most images from jPicker by Christopher T. Tillman.
Sourcecode created from scratch by Martijn W. van der Lee.
IE support; make sure you have a doctype defined, or the colorpicker will not
display correctly.
Options:
alpha: false
Whether or not to show the inputs for alpha.
altAlpha: true
Change the opacity of the altField element(s) according to the alpha
setting.
altField: ''
Change the background color of the elements specified in this element.
altOnChange: true
If true, the altField element(s) are updated on every change, otherwise
only upon closing.
altProperties: 'background-color'
Comma-separated list of CSS properties to set color of in the altField.
The following properties are allowed, all others are ignored.
background-color
color
border-color
outline-color
autoOpen: false
If true, the dialog opens automatically upon page load.
buttonColorize: false
If a buttonimage is specified, change the background color of the
image when the color is changed.
buttonImage: 'images/ui-colorpicker.png'
Same as jQueryUI DatePicker.
buttonImageOnly: false
Same as jQueryUI DatePicker.
buttonText: null
Same as jQueryUI DatePicker. If null, use language default.
closeOnEscape: true
Close the window when pressing the Escape key on the keyboard.
closeOnOutside: true
Close the window when clicking outside the colorpicker display.
color: '#00FF00'
Initial color. Formats recognized are:
#rrggbb
rrggbb (same as previous, but without the #)
rgb(rrr,ggg,bbb)
rgba(rrr,ggg,bbb,a.a)
rgb(rrr%,ggg%,bbb%)
rgba(rrr%,ggg%,bbb%,aaa%)
w3c-defined color name
colorFormat: 'HEX'
Specifies the format of the color string returned in callbacks.
You can either specify one of the predefined formats:
#HEX #112233
#HEX3 #123 if possible, otherwise false.
HEX 112233
HEX3 123 if possible, otherwise false.
RGB rgb(123,45,67) if opaque, otherwise false.
RGBA rgba(123,45,67,0.123%)
RGB% rgb(12%,34%,56%) if opaque, otherwise false.
RGBA% rgba(12%,34%,56%,0.123%)
HSL hsl(123,45,67) if opaque, otherwise false.
HSLA hsla(123,45,67,0.123%)
HSL% hsl(12%,34%,56%) if opaque, otherwise false.
HSLA% hsla(12%,34%,56%,0.123%)
NAME Closest color name
EXACT Exact name if possible, otherwise false.
or specify your own format...
Each color channel is specified as a pair of two characters.
The first character determines the color channel:
a Alpha
r, g, b RGB color space; red, green and blue
h, s, v HSV color space; hue, saturation and value
c, m, y, k CMYK color space; cyan, magenta, yellow and black
L, A, B LAB color space; Luminosity, *A and *B.
The second character specifies the data type:
x Two-digit hexadecimal notation.
d Decimal (0-255) notation.
f Floating point (0-1) notation, not rounded.
p Percentage (0-100) notation, not rounded.
If you prefix a valid pair with a backslash, it won't be replaced.
All patterns are case sensitive.
For example, to create the common hex color format, use "#rxgxbx".
For an rgba() format, use "rgba(rd,gd,bd,af)"
You can also specify an array of formats where the first non-FALSE one
is returned. Note that the only formats able to return FALSE are the
predefined formats HEX3 and EXACT. For example, this array will output
HEX3 format if possible or HEX format otherwise:
['HEX3', 'HEX']
dragggable: true
Make the dialog draggable if the header is visible and the dialog is
not inline.
duration: 'fast'
Same as jQueryUI DatePicker.
hsv: true
Whether or not to show the inputs for HSV.
layout: { ... }
Set the position of elements in a table layout.
You could create any layout possible with HTML tables by specifying
cell position and size of each part.
@todo document how this works.
limit: ''
Limit the selectable colors to any of the predefined limits:
'' No limitations, allow 8bpp color for a palette of
all 16 million colors.
'websafe' Set of 216 colors composed of 00, 33, 66, 99, cc
and ff color channel values in #rrggbb.
'nibble' 4 bits per color, can be easily converted to #rgb
format.
The palette is limited to 4096 colors.
'binary' Allow only #00 or #ff as color channel values for
primary colors only; only 8 colors are available
with this limit.
'name' Limit to closest color name.
modal:
Ensures no other controls on screen can be used while the dialog is
opened.
Also look at showCancelButton and closeOnEscape to use in combination
with the modal option. closeOnOutside is redundant when used with modal.
mode: 'h'
Determines the functionality of the map and bar components. Allowed
values are; 'h', 's', 'l', 'r', 'g', 'b' or 'a', for hue, saturation,
luminosity, red, green, blue and alpha respectively.
parts: ''
Determine which parts to display.
Use any of the preset names ('full', 'popup' or 'inline') or specify
an array of part names (i.e. ['header', 'map', 'bar', 'hex', 'hsv',
'rgb', 'alpha', 'lab', 'cmyk', 'preview', 'swatches', 'footer']).
If an empty string is given, the parts will be automatically chosen as
preset 'popup' or 'inline' depending on the context in which the
colorpicker is used.
rgb: true, // Show RGB controls and modes
Whether or not to show the inputs for RGB.
regional: '',
Sets the language to use. Note that you must load the appropriate
language file from the i18n directory. '' is included by default.
showAnim: 'fadeIn'
Same as jQueryUI DatePicker.
showCancelButton: true
Show the Cancel button if buttonpane is visible.
showCloseButton: true
Show the Close button if the header is visible.
If the dialog is inline, the close button is never shown.
showNoneButton: false
Show the None/Revert button if buttonpane is visible.
showOn: 'focus'
Same as jQueryUI DatePicker.
showOptions: {}
Same as jQueryUI DatePicker.
swatches: null
'null' to show swatches of HTML colors or provide your own object
with colornames and {r:1, g:1, b:1} array.
For example { 'red': {r:1, g:0, b:0}, 'blue': {r:0, g:0, b:1} }
title: null
Title to display in the header. If null, use language default.
Events:
init: null
Triggered on initially setting the color. Called only once.
Callbacks recieve same data as select event.
close: null
Triggered when the popup is closed.
Callbacks recieve same data as select event and an additional number
of fields containing the current color in all supported color spaces.
These are rgb{}, hsv{}, cmyk{}, lab{}, hsl{} and a.
Most values are floating point numbers in range [0,1] for accuracy.
The a and b values in the lab color space have range [-1,1].
select: null
Triggered on each change, confirmation (click on OK button) and
cancellation (click on Cancel, outside window or window close button)
respectively.
The event recieves a jQuery event object and a data object containing
the elements 'formatted' (with the color formatted according to
formatColor).
Note that select may be triggered in rapid succession when dragging
the mouse accross the map or bar and may be triggered without a change
in color upon specific user interactions.
Methods:
open
Open the dialog
close
Close the dialog
destroy
Destroy the widget
setColor
Set the current color to the specified color. Accepts any
CSS-confirmant color specification.

View File

@ -0,0 +1,20 @@
Fix the weird one-pixel vertical shift bug.
Caused by ui-widget class.
Only happens in Chrome and only on some, not all.
Disappears and re-appears at different zoom levels.
In hex input, accept (and strip) '#' symbol on copy/past.
Completely destroy object when closed.
Enabled/disabled
isRTL? What to RTL, besides button?
Disable selection in MSIE: this.dialog.on('selectstart', function(event) { return false; })
Special rendering mode for color_none? Use [X] images?
Fix parsing from input with websafe colors
Recognize "transparent" color name.
Limit number of events triggered.
Small size variant (128x128)
isRTL? What to RTL, besides button?
Undo/redo memory?
ARIA support.
Allow only set (dec/hex) characters in inputs
Most-recently-used swatches
HSL/HSV distance calculations should take into account cyclic hue.

View File

@ -0,0 +1,27 @@
jQuery(function($) {
$.colorpicker.regional['en'] = {
ok: 'OK',
cancel: 'Cancel',
none: 'None',
button: 'Color',
title: 'Pick a color',
transparent: 'Transparent',
hsvH: 'H',
hsvS: 'S',
hsvV: 'V',
rgbR: 'R',
rgbG: 'G',
rgbB: 'B',
labL: 'L',
labA: 'a',
labB: 'b',
hslH: 'H',
hslS: 'S',
hslL: 'L',
cmykC: 'C',
cmykM: 'M',
cmykY: 'Y',
cmykK: 'K',
alphaA: 'A'
};
});

View File

@ -0,0 +1,27 @@
jQuery(function($) {
$.colorpicker.regional['fr'] = {
ok: 'OK',
cancel: 'Annuler',
none: 'Aucune couleur',
button: 'Couleur',
title: 'Choisir une couleur',
transparent: 'Transparent',
hsvH: 'T',
hsvS: 'S',
hsvV: 'V',
rgbR: 'R',
rgbG: 'V',
rgbB: 'B',
labL: 'L',
labA: 'a',
labB: 'b',
hslH: 'T',
hslS: 'S',
hslL: 'L',
cmykC: 'C',
cmykM: 'M',
cmykY: 'J',
cmykK: 'N',
alphaA: 'A'
};
});

View File

@ -0,0 +1,27 @@
jQuery(function($) {
$.colorpicker.regional['nl'] = {
ok: 'OK',
cancel: 'Annuleren',
none: 'Geen',
button: 'Kleur',
title: 'Kies een kleur',
transparent: 'Transparant',
hsvH: 'H',
hsvS: 'S',
hsvV: 'V',
rgbR: 'R',
rgbG: 'G',
rgbB: 'B',
labL: 'L',
labA: 'a',
labB: 'b',
hslH: 'H',
hslS: 'S',
hslL: 'L',
cmykC: 'C',
cmykM: 'M',
cmykY: 'Y',
cmykK: 'K',
alphaA: 'A'
};
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

View File

@ -0,0 +1,210 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>jQuery Colorpicker</title>
<!-- jQuery/jQueryUI (hosted) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css" rel="stylesheet" type="text/css"/>
<style>
body {
font-family: 'Segoe UI', Verdana, Arial, Helvetica, sans-serif;
font-size: 62.5%;
}
</style>
<script src="jquery.colorpicker.js"></script>
<link href="jquery.colorpicker.css" rel="stylesheet" type="text/css"/>
<script src="i18n/jquery.ui.colorpicker-nl.js"></script>
</head>
<body>
<h1>jQuery ColorPicker</h1>
<hr/>
Basic &lt;input&gt; example, without any options: <input type="text" class="cp-basic" value="fe9810"/>
<hr/>
Basic &lt;div&gt; example, without any options: <span class="cp-basic" style="display: inline-block; vertical-align: top;"></span>
<script>
$( function() {
$('.cp-basic').colorpicker();
});
</script>
<hr/>
Fully-featured example: <input type="text" class="cp-full" value="186aa7"/>
<script>
$( function() {
$('.cp-full').colorpicker({
parts: 'full',
showOn: 'both',
buttonColorize: true,
showNoneButton: true,
alpha: true
});
});
</script>
<hr/>
Localized to Dutch (nl): <input type="text" class="cp-nl" value="ccea73"/>
<script>
$( function() {
$('.cp-nl').colorpicker({
regional: 'nl',
showNoneButton: true,
alpha: true
});
});
</script>
<hr/>
Limit to websafe colors: <input type="text" class="cp-websafe" value="0fa7c2"/>
<script>
$( function() {
$('.cp-websafe').colorpicker({
limit: 'websafe'
});
});
</script>
<hr/>
Alternative field class: <input type="text" class="cp-alt" value="b762ae"/>
<span class="cp-alt-target" style="display: inline-block; border: thin solid black; padding: .5em 4em;">
<div style=" background-color: white; border: thin solid black; padding: .25em 2em; font-size: 1.25em; font-weight: bold;">Background-color on outside, text color here</div>
</span>
<script>
$( function() {
$('.cp-alt').colorpicker({
altField: '.cp-alt-target',
altProperties: 'background-color,color',
altAlpha: true,
alpha: true
});
});
</script>
<hr/>
Events: <input type="text" class="cp-events" value="92b64a"/>
<div class="cp-events-log" style="vertical-align: top; display: inline-block; border: thin solid black; height: 10em; overflow-y: scroll; width: 50em;"></div>
<script>
$( function() {
var count = 0;
function addToEventLog(label, message) {
var line = '<div>#'+(++count)+' '+label+': '+message+'</div>';
var log = $('.cp-events-log');
log.append(line).scrollTop(log[0].scrollHeight);
}
$('.cp-events').colorpicker({
init: function(event, color) {
addToEventLog('Init', color.formatted);
},
select: function(event, color) {
addToEventLog('Select', color.formatted);
},
close: function(event, color) {
addToEventLog('Close', color.formatted + ' r:' + color.rgb.r + ' g:' + color.rgb.g + ' b:' + color.rgb.b + ' a:' + color.a);
}
});
});
</script>
<hr/>
Output formatting HSLA: <input type="text" class="cp-format" value="918237"/>
<span class="cp-format-output"></span>
<script>
$( function() {
$('.cp-format').colorpicker({
colorFormat: 'HSLA',
alpha: true,
init: function(event, color) {
$('.cp-format-output').text(color.formatted);
},
select: function(event, color) {
$('.cp-format-output').text(color.formatted);
}
});
});
</script>
<hr/>
Output format list: <input type="text" class="cp-name" value="a92fb4"/>
<span class="cp-name-output"></span>
<script>
$( function() {
$('.cp-name').colorpicker({
parts: 'full',
colorFormat: ['NAME', 'EXACT', '#HEX3', 'RGB', 'RGBA'],
init: function(event, color) {
$('.cp-name-output').text(color.formatted);
},
select: function(event, color) {
$('.cp-name-output').text(color.formatted);
}
});
});
</script>
<hr/>
Dialog with Colorpicker popup (demonstrates z-index):
<button id="cp-dialog-open">Open dialog</button>
<div id="cp-dialog-modal" title="Basic modal dialog">
Basic &lt;input&gt; example, without any options: <input type="text" class="cp-basic" value="fe9810"/>
<br/>
Basic &lt;div&gt; example, without any options: <span class="cp-basic" style="display: inline-block; vertical-align: top;"></span>
</div>
<script>
$(function() {
var dialog = $('#cp-dialog-modal').dialog({
autoOpen: false,
minWidth: 500,
modal: true,
buttons: { 'Close': function() {
$(this).dialog('close');
}
}
});
$('#cp-dialog-open').click(function() {
dialog.dialog('open');
});
});
</script>
<hr/>
Modal (and showCancelButton, closeOnEscape, showCloseButton): <input type="text" class="cp-modal" value="9ba73f"/>
<script>
$( function() {
$('.cp-modal').colorpicker({
parts: 'draggable',
showCloseButton: false,
modal: true,
showCancelButton: false,
closeOnEscape: false
});
});
</script>
<hr/>
Input formatting: <input type="text" class="cp-input" value="rgb(123,42,87)"/>
<script>
$( function() {
$('.cp-input').colorpicker({
colorFormat: ['RGBA']
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,199 @@
.ui-colorpicker,
.ui-dialog.ui-colorpicker {
width: auto;
white-space: nowrap;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.ui-colorpicker-inline {
position: static;
}
.ui-colorpicker-buttonset {
float: left;
margin-left: .4em;
}
.ui-colorpicker-buttonset .ui-button {
margin: .5em 0 .5em 0;
cursor: pointer;
}
.ui-colorpicker-buttonpane {
background-image: none;
margin: .7em 0 0 0;
padding: 0 .2em;
border-left: 0;
border-right: 0;
border-bottom: 0;
}
.ui-colorpicker-buttonpane button {
float: right;
margin: .5em .2em .4em;
cursor: pointer;
padding: .2em .6em .3em .6em;
width: auto;
overflow: visible;
}
.ui-colorpicker-buttonpane button.ui-colorpicker-current {
float: left;
}
.ui-colorpicker table {
font-size: 100%; /* Reset browser table font-size */
margin: 0;
}
.ui-colorpicker table td {
vertical-align: top;
}
.ui-colorpicker-padding-left {
padding-left: 10px;
}
.ui-colorpicker-padding-top {
padding-top: 10px;
}
.ui-colorpicker-border {
border: 1px inset;
display: inline-block;
}
/* Bar & map */
.ui-colorpicker-map > *,
.ui-colorpicker-bar > * {
position: absolute;
cursor: crosshair;
}
.ui-colorpicker-map-pointer,
.ui-colorpicker-bar-pointer {
position: absolute;
}
/* Map */
.ui-colorpicker-map,
.ui-colorpicker-map > * {
display: block;
width: 256px;
height: 256px;
overflow: hidden;
}
.ui-colorpicker-map-layer-1,
.ui-colorpicker-map-layer-2 {
background: url(images/map.png) no-repeat;
}
.ui-colorpicker-map-layer-alpha {
background: url(images/map-opacity.png);
}
.ui-colorpicker-map-pointer {
display: inline-block;
width: 15px;
height: 15px;
background: url(images/map-pointer.png) no-repeat;
}
/* Bar */
.ui-colorpicker-bar,
.ui-colorpicker-bar > * {
display: block;
width: 20px;
height: 256px;
overflow: hidden;
background-repeat: repeat-x;
}
.ui-colorpicker-bar-layer-1,
.ui-colorpicker-bar-layer-2,
.ui-colorpicker-bar-layer-3,
.ui-colorpicker-bar-layer-4 {
background: url(images/bar.png) repeat-x;
}
.ui-colorpicker-bar-layer-alpha {
background: url(images/bar-opacity.png);
}
.ui-colorpicker-bar-layer-alphabar {
background: url(images/bar-alpha.png);
}
.ui-colorpicker-bar-pointer {
display: inline-block;
width: 20px;
height: 7px;
background: url(images/bar-pointer.png) no-repeat;
}
/* Preview */
.ui-colorpicker-preview {
text-align: center;
}
.ui-colorpicker-preview-initial {
cursor: pointer;
}
.ui-colorpicker-preview-initial,
.ui-colorpicker-preview-current {
width: 50px;
height: 20px;
display: inline-block;
}
.ui-colorpicker-preview-initial-alpha,
.ui-colorpicker-preview-current-alpha {
width: 50px;
height: 20px;
display: inline-block;
background: url(images/preview-opacity.png) repeat;
}
/* Inputs */
.ui-colorpicker-rgb label,
.ui-colorpicker-hsv label,
.ui-colorpicker-hsl label,
.ui-colorpicker-lab label,
.ui-colorpicker-cmyk label,
.ui-colorpicker-alpha label {
width: 1.5em;
display: inline-block;
}
.ui-colorpicker-number {
margin: .1em;
width: 4em;
}
/* Hex */
.ui-colorpicker-hex {
text-align: center;
}
/* Swatches */
.ui-colorpicker-swatches {
width: 84px;
height: 256px;
overflow: auto;
background-color: #f8f8f8;
}
.ui-colorpicker-swatch {
cursor: pointer;
float: left;
width: 11px;
height: 11px;
border-right: 1px solid black;
border-bottom: 1px solid black;
}

Some files were not shown because too many files have changed in this diff Show More