import vhost-audit

master
Harold Paulson 2021-03-16 20:50:02 -07:00
commit 621e821cca
224 changed files with 44154 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

0
README.md Normal file
View File

27
bin/cron.pl Normal file
View File

@ -0,0 +1,27 @@
#!/usr/bin/perl -w
use strict;
use vars qw( $BASE_PATH );
use Cwd 'abs_path';
use File::Basename;
$BASE_PATH = dirname(dirname(abs_path($0)));
# read in sites.txt
open(SITES, "$BASE_PATH/sites.txt")
|| die("Error: could not read sites.txt file $!\n");
while (<SITES>) {
# FIXME: handle comments, blank lines!
chomp(my $path = $_);
my @parts = split('/', $path);
my $site_name = $parts[-2];
my $cmd = "$BASE_PATH/bin/vhost-audit.pl $path > $BASE_PATH/json/$site_name.json";
# print("$cmd\n");
# FIXME: would be better if we wrote out these files ourselves.
open(AUDIT, "$cmd |")
|| die("Error: could sudit site ($site_name) $!\n");
close(AUDIT);
}
close(SITES);

103
bin/vhost-audit.pl Normal file
View File

@ -0,0 +1,103 @@
#!/usr/bin/perl -w
use strict;
use vars qw(
$DEBUG $BAK_BASE @BAK_VERSIONS %RESULTS @SCRIPT_PATTERNS
%CHANGES %SCRIPTS
);
use Cwd 'abs_path';
use JSON;
$DEBUG = 1;
$BAK_BASE = '/.zfs/snapshot/';
@BAK_VERSIONS = (
'daily.0',
'daily.1',
'daily.2',
'weekly.0'
);
@SCRIPT_PATTERNS = ('.php$', '^.htaccess$', '.js$');
%RESULTS = ();
if (@ARGV) {
chomp(my $site = $ARGV[0]);
my $real_site = abs_path($site);
foreach my $bak_vers ( @BAK_VERSIONS ) {
my $bak_site = $BAK_BASE . $bak_vers . $real_site;
if ( -e $BAK_BASE . $bak_vers ) {
my @bak_stat = stat($BAK_BASE . $bak_vers);
my $bak_date = $bak_stat[9];
$RESULTS{'data'}{$bak_date} = ();
$RESULTS{'data'}{$bak_date}{'files'} = ();
$RESULTS{'data'}{$bak_date}{'added'} = 0;
$RESULTS{'data'}{$bak_date}{'deleted'} = 0;
$RESULTS{'data'}{$bak_date}{'changed'} = 0;
$RESULTS{'data'}{$bak_date}{'scripts'} = 0;
open(DIFF, "diff -qr $real_site $bak_site |")
|| die("Could not diff, $!\n");
while (<DIFF>) {
if ( m/^Files (.+) and (.+) differ/ ) {
my $file = substr($1, length($real_site));
$RESULTS{'data'}{$bak_date}{'files'}{$file} = 'changed';
$RESULTS{'data'}{$bak_date}{'changed'}++;
foreach my $script (@SCRIPT_PATTERNS) {
if ( $file =~ m/$script/ ) {
$RESULTS{'data'}{$bak_date}{'scripts'}++;
$SCRIPTS{$file} = 1;
last;
}
}
$CHANGES{$file} = 1;
}
elsif ( m/^Only in (.+): (.+)/ ) {
if ( substr($1, 0, length($real_site)) eq $real_site) {
my $file = substr($1, length($real_site)) . '/' . $2;
$RESULTS{'data'}{$bak_date}{'files'}{$file} = 'added';
$RESULTS{'data'}{$bak_date}{'added'}++;
foreach my $script (@SCRIPT_PATTERNS) {
if ( $file =~ m/$script/ ) {
$RESULTS{'data'}{$bak_date}{'scripts'}++;
$SCRIPTS{$file} = 1;
last;
}
}
$CHANGES{$file} = 1;
}
else {
my $file = substr($1, length($bak_site)) . '/' . $2;
$RESULTS{'data'}{$bak_date}{'files'}{$file} = 'deleted';
$RESULTS{'data'}{$bak_date}{'deleted'}++;
foreach my $script (@SCRIPT_PATTERNS) {
if ( $file =~ m/$script/ ) {
$RESULTS{'data'}{$bak_date}{'scripts'}++;
$SCRIPTS{$file} = 1;
last;
}
}
$CHANGES{$file} = 1;
}
}
else {
print('# ' . $_);
}
}
close(DIFF);
}
else {
print STDERR ($BAK_BASE . $bak_vers . " does not exist\n");
}
}
}
else {
die "Usage: $0 DocumentRoot\n";
}
$RESULTS{'lastrun'} = time();
$RESULTS{'changes'} = scalar(keys %CHANGES);
$RESULTS{'scripts'} = scalar(keys %SCRIPTS);
print(to_json(\%RESULTS, {pretty => 1}) );

View File

@ -0,0 +1,412 @@
# jQuery contextMenu plugin & polyfill #
---
> [**This repository now has a new maintainer**](https://github.com/swisnl/jQuery-contextMenu/issues/257)
---
__IMPORTANT: 2.0.0 is release and has change the default names of the icon classes in order to stop CSS conflicts with frameworks which define the class 'icon'.__
[![Travis Build Status](https://travis-ci.org/swisnl/jQuery-contextMenu.svg?branch=master)](https://travis-ci.org/swisnl/jQuery-contextMenu)
$.contextMenu is a management facility for - you guessed it - context menus. It was designed for an application where there are hundreds of elements that may show a context menu - so intialization speed and memory usage are kept fairly small. It also allows to register context menus without providing actual markup, as $.contextMenu generates DOMElements as needed.
[features](http://swisnl.github.io/jQuery-contextMenu/index.html) -
[demo](http://swisnl.github.io/jQuery-contextMenu/demo.html) -
[documentation](http://swisnl.github.io/jQuery-contextMenu/docs.html)
## Dependencies ##
* jQuery >=1.8.2
* jQuery UI position (optional but recommended)
## Usage ##
register contextMenu from javascript:
```javascript
$.contextMenu({
// define which elements trigger this menu
selector: ".with-cool-menu",
// define the elements of the menu
items: {
foo: {name: "Foo", callback: function(key, opt){ alert("Foo!"); }},
bar: {name: "Bar", callback: function(key, opt){ alert("Bar!") }}
}
// there's more, have a look at the demos and docs...
});
```
have a look at the [demos](http://swisnl.github.io/jQuery-contextMenu/demo.html).
## HTML5 Compatibility ##
Firefox 8 implemented contextmenu using the &lt;menuitem&gt; tags for menu-structure. The specs however state that &lt;command&gt; tags should be used for this purpose. $.contextMenu accepts both.
Firefox 8 does not yet fully implement the contextmenu specification ([Ticket #617528](https://bugzilla.mozilla.org/show_bug.cgi?id=617528)). The elements
[a](http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-a-element-to-define-a-command),
[button](http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-button-element-to-define-a-command),
[input](http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-input-element-to-define-a-command) and
[option](http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-option-element-to-define-a-command)
usable as commands are being ignored altogether. It also doesn't (optically) distinguish between checkbox/radio and regular commands ([Bug #705292](https://bugzilla.mozilla.org/show_bug.cgi?id=705292)).
* [contextmenu specs](http://www.w3.org/TR/html5/interactive-elements.html#context-menus)
* [command specs](http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html)
* [Browser support according to caniuse.com](http://caniuse.com/#search=context%20menu)
Note: While the specs note &lt;option&gt;s to be renderd as regular commands, $.contextMenu will render an actual &lt;select&gt;. import contextMenu from HTML5 &lt;menu&gt;:
```javascript
$.contextMenu("html5");
```
## Interaction Principles ##
You're (obviously) able to use the context menu with your mouse. Once it is opened, you can also use the keyboard to (fully) navigate it.
* ↑ (up) previous item in list, will skip disabled elements and wrap around
* ↓ (down) next item in, will skip disabled elements and wrap around
* → (right) dive into sub-menu
* ← (left) rise from sub-menu
* ↵ (return) invoke command
* ⇥ (tab) next item or input element, will skip disabled elements and wrap around
* ⇪ ⇥ (shift tab) previous item or input element, will skip disabled elements and wrap around
* ⎋ (escape) close menu
* ⌴ (space) captured and ignore to avoid page scrolling (for consistency with native menus)
* ⇞ (page up) captured and ignore to avoid page scrolling (for consistency with native menus)
* ⇟ (page down) captured and ignore to avoid page scrolling (for consistency with native menus)
* ↖ (home) first item in list, will skip disabled elements
* ↘ (end) last item in list, will skip disabled elements
Besides the obvious, browser also react to alphanumeric key strokes. Hitting <code>r</code> in a context menu will make Firefox (8) reload the page immediately. Chrome selects the option to see infos on the page, Safari selects the option to print the document. Awesome, right? Until trying the same on Windows I did not realize that the browsers were using the access-key for this. I would've preferred typing the first character of something, say "s" for "save" and then iterate through all the commands beginning with s. But that's me - what do I know about UX? Anyways, $.contextMenu now also supports accesskey handling.
## Authors ##
* [Björn Brala](https://github.com/swisnl)
* [Rodney Rehm](https://github.com/rodneyrehm) (original creator)
* [Christiaan Baartse](https://github.com/christiaan) (single callback per menu)
* [Addy Osmani](https://github.com/addyosmani) (compatibility with native context menu in Firefox 8)
## License ##
$.contextMenu is published under the [MIT license](http://www.opensource.org/licenses/mit-license)
## Special thanks ##
Font-Awesome icons used from [encharm/Font-Awesome-SVG-PNG](https://github.com/encharm/Font-Awesome-SVG-PNG).
## Changelog ##
### 2.1.1 ###
* Fixed a problem when using the open function with custom arguments (thanks @RareDevil)
* `width` is increased when repoening menu. Fixed by using outerwidth to calculate width. Fixes #360 (thanks @anseki)
* Submenus are not collapsed when the menu is closed fixes #358 (thanks @anseki)
* Small delay in checking for autohide to fix missing the menu by a pixel or two. Fixes #347 (thanks @Risord)
* Check if an item is not hidden in any way when scrolling through items with the keyboard. Fixes #348
* Change links and base url of documentation to https as mentioned by @OmgImAlexis in PR#345
### 2.1.0 ###
* Added support for providing a function as zIndex value in options object (thanks @eivindga)
* Fixed a switch to use the correct type for separators (thanks @RareDevil)
* Fixed the problem with submenus size wrongly ([Issue #308](https://github.com/swisnl/jQuery-contextMenu/issues/308)) (thanks @RareDevil)
* Incorrect entry on package.json ([Issue #336](https://github.com/swisnl/jQuery-contextMenu/issues/336)) (thanks @Dijir)
* Gray out disabled icons as well as text ([Issue #337](https://github.com/swisnl/jQuery-contextMenu/issues/337)) (thanks @r02b)
* Optimized generated CSS so that ``context-menu-icon`` class can be used to overwrite icon CSS.
* Positioning of contextmenu when using appendTo (thanks @mrMarco)
* Check to see if target have a higher zIndex than the contextmenu in the key event handler (thanks @RareDevil)
### 2.0.1 (December 3rd 2015) ###
* Remove executable bit from jquery.contextMenu.js (thanks @jacknagel)
* Fixed a problem there was when using a function for icons (thanks @RareDevil)
* Fixed a problem where submenus resized wrong (thanks @RareDevil)
* Fixed a problem where the contextmenu would open another menu (thanks @RareDevil) - ([Issue #252](https://github.com/swisnl/jQuery-contextMenu/issues/252) and [Issue #293](https://github.com/swisnl/jQuery-contextMenu/issues/293))
* Fixed regression of node name's not being appended to the label of input elements. (thanks @RareDevil)
* Add check that root.$layer exists, to prevent calling hide() on an defined object. (thanks @andreasrosdal)
### 2.0.0 (October 28th 2015) ###
* __This version changes the default names of the icon classes in order to stop CSS conflicts with frameworks which define the class 'icon'.__ In order to keep the icon names the same as before this change you can change the defaults on the classnames for the icons ([docs on classNames option](http://swisnl.github.io/jQuery-contextMenu/docs.html#options-classNames)). The classnames will probably be "context-menu-icon-*" as proposed earlier by @rodneyrehm.
* You can not use SASS to customize your contextmenu. The gulp command build-icons takes all the SVG icons from src/icons and builds them into a font. In order to this we needed to break backwards compatibility. This does mean the new CSS does not have the old .icon class defined which makes it a lot more stable within CSS frameworks. The first revision of the documentation is found [here](documentation/docs/customize.md).
* The 1.x branch will be maintained for a while with bugfixes. But support for 1.x will be dropped in the coming months.
* Reverted the change from 1.7.0: .html() changed back to .text() since it is an security issue (thanks @arai-a)
### 1.10.1 (October 25th 2015) ###
* Added gulp command (integration-test-paths) to change the paths in the integration tests to the correct path after they are overwritten by the documentation generator.
* Make sure the contextmenu is not outside the client area by (thanks to @arai-a)
* Update jQuery dependecy so that it will not result in double installation of jQuery when using npm (thanks to @fredericlb)
### 1.9.1 (October 11th 2015) ###
* Fixed a bug where the classNames options would fail on a submenu.
* New documentation site and generation using [couscous](https://github.com/CouscousPHP/Couscous)
### 1.9.0 (October 1st 2015) ###
* Make classes configurable for those that can easily conflict. See the [docs on classNames option](http://swisnl.github.io/jQuery-contextMenu/docs.html#options-classNames). This also prepares to change classnames to non conflicting defaults so the hassle with frameworks as bootstrap will stop.
* Fix for handling of seperator string. It threw an error on the protected property of String.$node
* Fix for opening the contextmenu at coordinate 0,0 (by [Andreme](https://github.com/andreme))
* Fixed check for jQuery UI ([Issue #182](https://github.com/swisnl/jQuery-contextMenu/issues/182))
* Updated doc for function argument for icon
### 1.8.1 (September 14th 2015) ###
* Updated readme.
* Updated dist files
### 1.8.0 (September 14th 2015) - dist files not updated! ###
* Added dist folder with compiled JS and CSS, added these files to package and bower configuration.
* Fixed doc link for jQuery UI position ([Issue #274](https://github.com/swisnl/jQuery-contextMenu/issues/274))
* Item icon can now be a callback to dynamically decide on icon class. - ([Issue #158](https://github.com/swisnl/jQuery-contextMenu/issues/158), [Issue #129](https://github.com/swisnl/jQuery-contextMenu/issues/129), [Issue #151](https://github.com/swisnl/jQuery-contextMenu/issues/151), [Issue #249](https://github.com/swisnl/jQuery-contextMenu/issues/249))
* Small fix to calculating width and height on screen edges when padding is present.
### 1.7.0 (August 29th 2015) ###
* Touch support optimisations (by kccarter76)
* changed .text to .html so there are no extra span's fixed - ([Issue #252](https://github.com/swisnl/jQuery-contextMenu/issues/252))
* added visibility callback to item definition
* copy the HTML5 icon attribute when creating from HTML5 elements
* growing menu when opening multiple times fixed - ([Issue #197](https://github.com/swisnl/jQuery-contextMenu/issues/197))
* fixed failure to run tests
### 1.6.8 (August 18th 2015) ###
* changes for new maintainer
### 1.6.7 (May 21st 2015) ###
* looking for maintainer note
* publish to npm
### 1.6.6 (July 12th 2014) ###
* fixing bower manifest
### 1.6.5 (January 20th 2013) ###
* fixing "opening a second menu can break the layer" - ([Issue #105](https://github.com/swisnl/jQuery-contextMenu/issues/105))
### 1.6.4 (January 19th 2013) ###
* fixing [jQuery plugin manifest](https://github.com/swisnl/jQuery-contextMenu/commit/413b1ecaba0aeb4e50f97cee35f7c367435e7830#commitcomment-2465216), again. yep. I'm that kind of a guy. :(
### 1.6.3 (January 19th 2013) ###
* fixing [jQuery plugin manifest](https://github.com/swisnl/jQuery-contextMenu/commit/413b1ecaba0aeb4e50f97cee35f7c367435e7830#commitcomment-2465216)
### 1.6.2 (January 19th 2013) ###
* fixing "menu won't close" regression introduced by 1.6.1
### 1.6.1 (January 19th 2013) ###
* fixing potential html parsing problem
* upgrading to jQuery UI position v1.10.0
* replaced `CRLF` by `LF` (no idea how this happened in the first place...)
* adding `options.reposition` to dis/allow simply relocating a menu instead of rebuilding it ([Issue #104](https://github.com/swisnl/jQuery-contextMenu/issues/104))
### 1.6.0 (December 29th 2012) ###
* adding [DOM Element bound context menus](http://swisnl.github.io/jQuery-contextMenu/demo/on-dom-element.html) - ([Issue 88](https://github.com/swisnl/jQuery-contextMenu/issues/88))
* adding class `context-menu-active` to define state on active trigger element - ([Issue 92](https://github.com/swisnl/jQuery-contextMenu/issues/92))
* adding [demo for TouchSwipe](http://swisnl.github.io/jQuery-contextMenu/demo/trigger-swipe.html) activation
* adding export of internal functions and event handlers - ([Issue 101](https://github.com/swisnl/jQuery-contextMenu/issues/101))
* fixing key "watch" might translate to Object.prototype.watch in callbacks map - ([Issue 93](https://github.com/swisnl/jQuery-contextMenu/issues/93))
* fixing menu and submenu width calculation - ([Issue 18](https://github.com/swisnl/jQuery-contextMenu/issues/18))
* fixing unused variables - ([Issue 100](https://github.com/swisnl/jQuery-contextMenu/issues/100))
* fixing iOS "click" compatibility problem - ([Issue 83](https://github.com/swisnl/jQuery-contextMenu/issues/83))
* fixing separators to not be clickable - ([Issue 85](https://github.com/swisnl/jQuery-contextMenu/issues/85))
* fixing issues with fixed positioned triggers ([Issue 95](https://github.com/swisnl/jQuery-contextMenu/issues/95))
* fixing word break problem - ([Issue 80](https://github.com/swisnl/jQuery-contextMenu/issues/80))
### 1.5.25 (October 8th 2012) ###
* upgrading to jQuery 1.8.2 ([Issue 78](https://github.com/swisnl/jQuery-contextMenu/issues/78))
* upgrading to jQuery UI position 1.9.0 RC1 ([Issue 78](https://github.com/swisnl/jQuery-contextMenu/issues/78))
### 1.5.24 (August 30th 2012) ###
* adding context menu options to input command events ([Issue 72](https://github.com/swisnl/jQuery-contextMenu/issues/72), dtex)
* code cosmetics for JSLint
### 1.5.23 (August 22nd 2012) ###
* fixing reposition/close issue on scrolled documents ([Issue 69](https://github.com/swisnl/jQuery-contextMenu/issues/69))
* fixing jQuery reference ([Issue 68](https://github.com/swisnl/jQuery-contextMenu/issues/68))
### 1.5.22 (July 16th 2012) ###
* fixing issue with animation and remove on hide (Issue #64)
### 1.5.21 (July 14th 2012) ###
* fixing backdrop would not remove on destroy (Issue #63)
### 1.5.20 (June 26th 2012) ###
Note: git tag of version is `v1.6.20`?!
* fixing backdrop would not position properly in IE6 (Issue #59)
* fixing nested input elements not accessible in Chrome / Safari (Issue #58)
### 1.5.19 ###
Note: git tag of version is missing...?!
* fixing sub-menu positioning when `$.ui.position` is not available (Issue #56)
### 1.5.18 ###
Note: git tag of version is missing...?!
* fixing html5 `<menu>` import (Issue #53)
### 1.5.17 (June 4th 2012) ###
* fixing `options` to default to `options.trigger = "right"`
* fixing variable name typo (Within Issue #51)
* fixing menu not closing while opening other menu (Within Issue #51)
* adding workaround for `contextmenu`-bug in Firefox 12 (Within Issue #51)
### 1.5.16 (May 29th 2012) ###
* added vendor-prefixed user-select to CSS
* fixed issue with z-indexing when `<body>` is used as a trigger (Issue #49)
### 1.5.15 (May 26th 2012) ###
* allowing to directly open another element's menu while a menu is shown (Issue #48)
* fixing autohide option that would not properly hide the menu
### 1.5.14 (May 22nd 2012) ###
* options.build() would break default options (Issue #47)
* $.contextMenu('destroy') would not remove backdrop
### 1.5.13 (May 4th 2012) ###
* exposing $trigger to dynamically built custom menu-item types (Issue #42)
* fixing repositioning of open menu (formerly accidental re-open)
* adding asynchronous example
* dropping ignoreRightClick in favor of proper event-type detection
### 1.5.12 (May 2nd 2012) ###
* prevent invoking callback of first item of a sub-menu when clicking on the sub-menu-item (Issue #41)
### 1.5.11 (April 27th 2012) ###
* providing `opt.$trigger` to show event (Issue #39)
### 1.5.10 (April 21st 2012) ###
* ignoreRightClick would not prevent right click when menu is already open (Issue #38)
### 1.5.9 (March 10th 2012) ###
* If build() did not return any items, an empty menu was shown (Issue #33)
### 1.5.8 (January 28th 2012) ###
* Capturing Page Up and Page Down keys to ignore like space (Issue #30)
* Added Home / End keys to jump to first / last command of menu (Issue #29)
* Bug hitting enter in an &lt;input&gt; would yield an error (Issue #28)
### 1.5.7 (January 21st 2012) ###
* Non-ASCII character in jquery.contextMenu.js caused compatibility issues in Rails (Issue #27)
### 1.5.6 (January 8th 2012) ###
* Bug contextmenu event was not passed to build() callback (Issue #24)
* Bug sub-menu markers would not display properly in Safari and Chrome (Issue #25)
### 1.5.5 (January 6th 2012) ###
* Bug Internet Explorer would not close menu when giving input elements focus (Issue #23)
### 1.5.4 (January 5th 2012) ##
* Bug not set z-index of sub-menus might not overlap the main menu correctly (Issue #22)
### 1.5.3 (January 1st 2012) ###
* Bug `console.log is undefined`
### 1.5.2 (December 25th 2012) ###
* Bug sub-menus would not properly update their disabled states (Issue #16) [again…]
* Bug sub-menus would not properly adjust width accoring to min-width and max-width (Issue #18)
### 1.5.1 (December 18th 2011) ###
* Bug sub-menus would not properly update their disabled states (Issue #16)
### 1.5 (December 13th 2011) ###
* Added [dynamic menu creation](http://swisnl.github.io/jQuery-contextMenu/demo/dynamic-create.html) (Issue #15)
### 1.4.4 (December 12th 2011) ###
* Bug positioning &lt;menu&gt; when trigger element is `position:fixed` (Issue #14)
### 1.4.3 (December 11th 2011) ###
* Bug key handler would caputure all key strokes while menu was visible (essentially disabling F5 and co.)
### 1.4.2 (December 6th 2011) ###
* Bug opt.$trigger was not available to disabled callbacks
* jQuery bumped to 1.7.1
### 1.4.1 (November 9th 2011) ###
* Bug where &lt;menu&gt; imports would not pass action (click event) properly
### 1.4 (November 7th 2011) ###
* Upgraded to jQuery 1.7 (changed dependecy!)
* Added internal events `contextmenu:focus`, `contextmenu:blur` and `contextmenu:hide`
* Added custom &lt;command&gt; types
* Bug where `className` wasn't properly set on &lt;menu&gt;
### 1.3 (September 5th 2011) ###
* Added support for accesskeys
* Bug where two sub-menus could be open simultaneously
### 1.2.2 (August 24th 2011) ###
* Bug in HTML5 import
### 1.2.1 (August 24th 2011) ###
* Bug in HTML5 detection
### 1.2 (August 24th 2011) ###
* Added compatibility to &lt;menuitem&gt; for Firefox 8
* Upgraded to jQuery 1.6.2
### 1.1 (August 11th 2011) ###
* Bug #1 TypeError on HTML5 action passthru
* Bug #2 disbaled callback not invoked properly
* Feature #3 auto-hide option for hover trigger
* Feature #4 option to use a single callback for all commands, rather than registering the same function for each item
* Option to ignore right-click (original "contextmenu" event trigger) for non-right-click triggers
### 1.0 (July 7th 2011) ###
* Initial $.contextMenu handler

View File

@ -0,0 +1,43 @@
{
"name": "jQuery-contextMenu",
"version": "2.1.1",
"main": [
"dist/jquery.contextMenu.js",
"dist/jquery.contextMenu.min.js",
"dist/jquery.contextMenu.min.js.map",
"dist/jquery.contextMenu.css",
"dist/jquery.contextMenu.min.css",
"dist/jquery.contextMenu.min.css.map",
"dist/jquery.ui.position.js",
"dist/jquery.ui.position.min.js",
"dist/images/cut.png",
"dist/images/door.png",
"dist/images/page_white_add.png",
"dist/images/page_white_copy.png",
"dist/images/page_white_delete.png",
"dist/images/page_white_edit.png",
"dist/images/page_white_paste.png",
"dist/images/cut.png"
],
"homepage": "http://swisnl.github.io/jQuery-contextMenu/",
"authors": [
"Björn Brala <bjorn@swis.nl> (http://www.swis.nl)",
"Rodney Rehm <rodney.rehm@medialize.de> (http://rodneyrehm.de/en)"
],
"description": "Full featured context menu handler capable of handling thousands of elements",
"keywords": ["contextmenu", "context-menu", "right-click-menu", "right-click", "navigation", "menu"],
"license": "MIT",
"dependencies": {
"jquery": ">=1.8.2"
},
"ignore": [
"demo/",
"prettify/",
"screenshots/",
"**/.*",
"*.md",
"*.html",
"/*.css",
"/*.js"
]
}

View File

@ -0,0 +1,30 @@
{
"name": "contextMenu",
"title": "jQuery contextMenu",
"description": "full featured context menu handler capable of handling thousands of elements",
"keywords": [
"contextmenu",
"context-menu",
"right-click-menu",
"right-click",
"navigation",
"menu"
],
"version": "git-master",
"author": {
"name": "Björn Brala (SWIS.nl)",
"url": "http://www.swis.nl"
},
"licenses": [
{
"type": "MIT",
"url": "https://github.com/jquery/jquery-color/blob/2.1.2/MIT-LICENSE.txt"
}
],
"bugs": "https://github.com/swisnl/jQuery-contextMenu/issues",
"homepage": "http://swisnl.github.io/jQuery-contextMenu/",
"docs": "http://swisnl.github.io/jQuery-contextMenu/docs.html",
"dependencies": {
"jquery": ">=1.8.2"
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,206 @@
@charset "UTF-8";
/*!
* jQuery contextMenu - Plugin for simple contextMenu handling
*
* Version: v2.1.0
*
* Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)
* Web: http://swisnl.github.io/jQuery-contextMenu/
*
* Copyright (c) 2011-2016 SWIS BV and contributors
*
* Licensed under
* MIT License http://www.opensource.org/licenses/mit-license
*
* Date: 2016-02-28T09:41:28.803Z
*/
@font-face {
font-family: "context-menu-icons";
font-style: normal;
font-weight: normal;
src: url("font/context-menu-icons.eot?2qmzf");
src: url("font/context-menu-icons.eot?2qmzf#iefix") format("embedded-opentype"), url("font/context-menu-icons.woff2?2qmzf") format("woff2"), url("font/context-menu-icons.woff?2qmzf") format("woff"), url("font/context-menu-icons.ttf?2qmzf") format("truetype");
}
.context-menu-icon:before {
position: absolute;
top: 50%;
left: 0;
width: 28px;
font-family: "context-menu-icons";
font-size: 16px;
font-style: normal;
font-weight: normal;
line-height: 1;
color: #2980b9;
text-align: center;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.context-menu-icon-add:before {
content: "";
}
.context-menu-icon-copy:before {
content: "";
}
.context-menu-icon-cut:before {
content: "";
}
.context-menu-icon-delete:before {
content: "";
}
.context-menu-icon-edit:before {
content: "";
}
.context-menu-icon-paste:before {
content: "";
}
.context-menu-icon-quit:before {
content: "";
}
.context-menu-icon.context-menu-hover:before {
color: #fff;
}
.context-menu-list {
position: absolute;
display: inline-block;
min-width: 180px;
max-width: 360px;
padding: 4px 0;
margin: 5px;
font-family: inherit;
font-size: inherit;
list-style-type: none;
background: #fff;
border: 1px solid #bebebe;
border-radius: 3px;
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
}
.context-menu-item {
position: relative;
padding: 3px 28px;
color: #2f2f2f;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: #fff;
}
.context-menu-separator {
padding: 0;
margin: 5px 0;
border-bottom: 1px solid #e6e6e6;
}
.context-menu-item > label > input,
.context-menu-item > label > textarea {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.context-menu-item.context-menu-hover {
color: #fff;
cursor: pointer;
background-color: #2980b9;
}
.context-menu-item.context-menu-disabled {
color: #626262;
background-color: #fff;
}
.context-menu-item.context-menu-disabled {
color: #626262;
}
.context-menu-input.context-menu-hover,
.context-menu-item.context-menu-disabled.context-menu-hover {
cursor: default;
background-color: #eee;
}
.context-menu-submenu:after {
position: absolute;
top: 50%;
right: 8px;
z-index: 1;
width: 0;
height: 0;
content: '';
border-color: transparent transparent transparent #2f2f2f;
border-style: solid;
border-width: 4px 0 4px 4px;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
}
/**
* Inputs
*/
.context-menu-item.context-menu-input {
padding: 5px 10px;
}
/* vertically align inside labels */
.context-menu-input > label > * {
vertical-align: top;
}
/* position checkboxes and radios as icons */
.context-menu-input > label > input[type="checkbox"],
.context-menu-input > label > input[type="radio"] {
position: relative;
top: 3px;
}
.context-menu-input > label,
.context-menu-input > label > input[type="text"],
.context-menu-input > label > textarea,
.context-menu-input > label > select {
display: block;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.context-menu-input > label > textarea {
height: 100px;
}
.context-menu-item > .context-menu-list {
top: 5px;
/* re-positioned by js */
right: -5px;
display: none;
}
.context-menu-item.context-menu-visible > .context-menu-list {
display: block;
}
.context-menu-accesskey {
text-decoration: underline;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,16 @@
@charset "UTF-8";/*!
* jQuery contextMenu - Plugin for simple contextMenu handling
*
* Version: v2.1.0
*
* Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)
* Web: http://swisnl.github.io/jQuery-contextMenu/
*
* Copyright (c) 2011-2016 SWIS BV and contributors
*
* Licensed under
* MIT License http://www.opensource.org/licenses/mit-license
*
* Date: 2016-02-28T09:41:28.803Z
*/@font-face{font-family:context-menu-icons;font-style:normal;font-weight:400;src:url(font/context-menu-icons.eot?2qmzf);src:url(font/context-menu-icons.eot?2qmzf#iefix) format("embedded-opentype"),url(font/context-menu-icons.woff2?2qmzf) format("woff2"),url(font/context-menu-icons.woff?2qmzf) format("woff"),url(font/context-menu-icons.ttf?2qmzf) format("truetype")}.context-menu-icon:before{position:absolute;top:50%;left:0;width:28px;font-family:context-menu-icons;font-size:16px;font-style:normal;font-weight:400;line-height:1;color:#2980b9;text-align:center;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.context-menu-icon-add:before{content:""}.context-menu-icon-copy:before{content:""}.context-menu-icon-cut:before{content:""}.context-menu-icon-delete:before{content:""}.context-menu-icon-edit:before{content:""}.context-menu-icon-paste:before{content:""}.context-menu-icon-quit:before{content:""}.context-menu-icon.context-menu-hover:before{color:#fff}.context-menu-list{position:absolute;display:inline-block;min-width:180px;max-width:360px;padding:4px 0;margin:5px;font-family:inherit;font-size:inherit;list-style-type:none;background:#fff;border:1px solid #bebebe;border-radius:3px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.5);box-shadow:0 2px 5px rgba(0,0,0,.5)}.context-menu-item{position:relative;padding:3px 28px;color:#2f2f2f;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.context-menu-separator{padding:0;margin:5px 0;border-bottom:1px solid #e6e6e6}.context-menu-item>label>input,.context-menu-item>label>textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.context-menu-item.context-menu-hover{color:#fff;cursor:pointer;background-color:#2980b9}.context-menu-item.context-menu-disabled{background-color:#fff;color:#626262}.context-menu-input.context-menu-hover,.context-menu-item.context-menu-disabled.context-menu-hover{cursor:default;background-color:#eee}.context-menu-submenu:after{position:absolute;top:50%;right:8px;z-index:1;width:0;height:0;content:'';border-color:transparent transparent transparent #2f2f2f;border-style:solid;border-width:4px 0 4px 4px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.context-menu-item.context-menu-input{padding:5px 10px}.context-menu-input>label>*{vertical-align:top}.context-menu-input>label>input[type=checkbox],.context-menu-input>label>input[type=radio]{position:relative;top:3px}.context-menu-input>label,.context-menu-input>label>input[type=text],.context-menu-input>label>select,.context-menu-input>label>textarea{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.context-menu-input>label>textarea{height:100px}.context-menu-item>.context-menu-list{top:5px;right:-5px;display:none}.context-menu-item.context-menu-visible>.context-menu-list{display:block}.context-menu-accesskey{text-decoration:underline}
/*# sourceMappingURL=jquery.contextMenu.min.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,517 @@
/*!
* jQuery UI Position 1.11.4
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/position/
*/
(function( factory ) {
if ( typeof define === "function" && define.amd ) {
// AMD. Register as an anonymous module.
define( [ "jquery" ], factory );
} else {
// Browser globals
factory( jQuery );
}
}(function( $ ) {
(function() {
$.ui = $.ui || {};
var cachedScrollbarWidth, supportsOffsetFractions,
max = Math.max,
abs = Math.abs,
round = Math.round,
rhorizontal = /left|center|right/,
rvertical = /top|center|bottom/,
roffset = /[\+\-]\d+(\.[\d]+)?%?/,
rposition = /^\w+/,
rpercent = /%$/,
_position = $.fn.position;
function getOffsets( offsets, width, height ) {
return [
parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
];
}
function parseCss( element, property ) {
return parseInt( $.css( element, property ), 10 ) || 0;
}
function getDimensions( elem ) {
var raw = elem[0];
if ( raw.nodeType === 9 ) {
return {
width: elem.width(),
height: elem.height(),
offset: { top: 0, left: 0 }
};
}
if ( $.isWindow( raw ) ) {
return {
width: elem.width(),
height: elem.height(),
offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
};
}
if ( raw.preventDefault ) {
return {
width: 0,
height: 0,
offset: { top: raw.pageY, left: raw.pageX }
};
}
return {
width: elem.outerWidth(),
height: elem.outerHeight(),
offset: elem.offset()
};
}
$.position = {
scrollbarWidth: function() {
if ( cachedScrollbarWidth !== undefined ) {
return cachedScrollbarWidth;
}
var w1, w2,
div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ),
innerDiv = div.children()[0];
$( "body" ).append( div );
w1 = innerDiv.offsetWidth;
div.css( "overflow", "scroll" );
w2 = innerDiv.offsetWidth;
if ( w1 === w2 ) {
w2 = div[0].clientWidth;
}
div.remove();
return (cachedScrollbarWidth = w1 - w2);
},
getScrollInfo: function( within ) {
var overflowX = within.isWindow || within.isDocument ? "" :
within.element.css( "overflow-x" ),
overflowY = within.isWindow || within.isDocument ? "" :
within.element.css( "overflow-y" ),
hasOverflowX = overflowX === "scroll" ||
( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
hasOverflowY = overflowY === "scroll" ||
( overflowY === "auto" && within.height < within.element[0].scrollHeight );
return {
width: hasOverflowY ? $.position.scrollbarWidth() : 0,
height: hasOverflowX ? $.position.scrollbarWidth() : 0
};
},
getWithinInfo: function( element ) {
var withinElement = $( element || window ),
isWindow = $.isWindow( withinElement[0] ),
isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;
return {
element: withinElement,
isWindow: isWindow,
isDocument: isDocument,
offset: withinElement.offset() || { left: 0, top: 0 },
scrollLeft: withinElement.scrollLeft(),
scrollTop: withinElement.scrollTop(),
// support: jQuery 1.6.x
// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows
width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),
height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()
};
}
};
$.fn.position = function( options ) {
if ( !options || !options.of ) {
return _position.apply( this, arguments );
}
// make a copy, we don't want to modify arguments
options = $.extend( {}, options );
var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
target = $( options.of ),
within = $.position.getWithinInfo( options.within ),
scrollInfo = $.position.getScrollInfo( within ),
collision = ( options.collision || "flip" ).split( " " ),
offsets = {};
dimensions = getDimensions( target );
if ( target[0].preventDefault ) {
// force left top to allow flipping
options.at = "left top";
}
targetWidth = dimensions.width;
targetHeight = dimensions.height;
targetOffset = dimensions.offset;
// clone to reuse original targetOffset later
basePosition = $.extend( {}, targetOffset );
// force my and at to have valid horizontal and vertical positions
// if a value is missing or invalid, it will be converted to center
$.each( [ "my", "at" ], function() {
var pos = ( options[ this ] || "" ).split( " " ),
horizontalOffset,
verticalOffset;
if ( pos.length === 1) {
pos = rhorizontal.test( pos[ 0 ] ) ?
pos.concat( [ "center" ] ) :
rvertical.test( pos[ 0 ] ) ?
[ "center" ].concat( pos ) :
[ "center", "center" ];
}
pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
// calculate offsets
horizontalOffset = roffset.exec( pos[ 0 ] );
verticalOffset = roffset.exec( pos[ 1 ] );
offsets[ this ] = [
horizontalOffset ? horizontalOffset[ 0 ] : 0,
verticalOffset ? verticalOffset[ 0 ] : 0
];
// reduce to just the positions without the offsets
options[ this ] = [
rposition.exec( pos[ 0 ] )[ 0 ],
rposition.exec( pos[ 1 ] )[ 0 ]
];
});
// normalize collision option
if ( collision.length === 1 ) {
collision[ 1 ] = collision[ 0 ];
}
if ( options.at[ 0 ] === "right" ) {
basePosition.left += targetWidth;
} else if ( options.at[ 0 ] === "center" ) {
basePosition.left += targetWidth / 2;
}
if ( options.at[ 1 ] === "bottom" ) {
basePosition.top += targetHeight;
} else if ( options.at[ 1 ] === "center" ) {
basePosition.top += targetHeight / 2;
}
atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
basePosition.left += atOffset[ 0 ];
basePosition.top += atOffset[ 1 ];
return this.each(function() {
var collisionPosition, using,
elem = $( this ),
elemWidth = elem.outerWidth(),
elemHeight = elem.outerHeight(),
marginLeft = parseCss( this, "marginLeft" ),
marginTop = parseCss( this, "marginTop" ),
collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
position = $.extend( {}, basePosition ),
myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
if ( options.my[ 0 ] === "right" ) {
position.left -= elemWidth;
} else if ( options.my[ 0 ] === "center" ) {
position.left -= elemWidth / 2;
}
if ( options.my[ 1 ] === "bottom" ) {
position.top -= elemHeight;
} else if ( options.my[ 1 ] === "center" ) {
position.top -= elemHeight / 2;
}
position.left += myOffset[ 0 ];
position.top += myOffset[ 1 ];
// if the browser doesn't support fractions, then round for consistent results
if ( !supportsOffsetFractions ) {
position.left = round( position.left );
position.top = round( position.top );
}
collisionPosition = {
marginLeft: marginLeft,
marginTop: marginTop
};
$.each( [ "left", "top" ], function( i, dir ) {
if ( $.ui.position[ collision[ i ] ] ) {
$.ui.position[ collision[ i ] ][ dir ]( position, {
targetWidth: targetWidth,
targetHeight: targetHeight,
elemWidth: elemWidth,
elemHeight: elemHeight,
collisionPosition: collisionPosition,
collisionWidth: collisionWidth,
collisionHeight: collisionHeight,
offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
my: options.my,
at: options.at,
within: within,
elem: elem
});
}
});
if ( options.using ) {
// adds feedback as second argument to using callback, if present
using = function( props ) {
var left = targetOffset.left - position.left,
right = left + targetWidth - elemWidth,
top = targetOffset.top - position.top,
bottom = top + targetHeight - elemHeight,
feedback = {
target: {
element: target,
left: targetOffset.left,
top: targetOffset.top,
width: targetWidth,
height: targetHeight
},
element: {
element: elem,
left: position.left,
top: position.top,
width: elemWidth,
height: elemHeight
},
horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
};
if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
feedback.horizontal = "center";
}
if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
feedback.vertical = "middle";
}
if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
feedback.important = "horizontal";
} else {
feedback.important = "vertical";
}
options.using.call( this, props, feedback );
};
}
elem.offset( $.extend( position, { using: using } ) );
});
};
$.ui.position = {
fit: {
left: function( position, data ) {
var within = data.within,
withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
outerWidth = within.width,
collisionPosLeft = position.left - data.collisionPosition.marginLeft,
overLeft = withinOffset - collisionPosLeft,
overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
newOverRight;
// element is wider than within
if ( data.collisionWidth > outerWidth ) {
// element is initially over the left side of within
if ( overLeft > 0 && overRight <= 0 ) {
newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
position.left += overLeft - newOverRight;
// element is initially over right side of within
} else if ( overRight > 0 && overLeft <= 0 ) {
position.left = withinOffset;
// element is initially over both left and right sides of within
} else {
if ( overLeft > overRight ) {
position.left = withinOffset + outerWidth - data.collisionWidth;
} else {
position.left = withinOffset;
}
}
// too far left -> align with left edge
} else if ( overLeft > 0 ) {
position.left += overLeft;
// too far right -> align with right edge
} else if ( overRight > 0 ) {
position.left -= overRight;
// adjust based on position and margin
} else {
position.left = max( position.left - collisionPosLeft, position.left );
}
},
top: function( position, data ) {
var within = data.within,
withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
outerHeight = data.within.height,
collisionPosTop = position.top - data.collisionPosition.marginTop,
overTop = withinOffset - collisionPosTop,
overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
newOverBottom;
// element is taller than within
if ( data.collisionHeight > outerHeight ) {
// element is initially over the top of within
if ( overTop > 0 && overBottom <= 0 ) {
newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
position.top += overTop - newOverBottom;
// element is initially over bottom of within
} else if ( overBottom > 0 && overTop <= 0 ) {
position.top = withinOffset;
// element is initially over both top and bottom of within
} else {
if ( overTop > overBottom ) {
position.top = withinOffset + outerHeight - data.collisionHeight;
} else {
position.top = withinOffset;
}
}
// too far up -> align with top
} else if ( overTop > 0 ) {
position.top += overTop;
// too far down -> align with bottom edge
} else if ( overBottom > 0 ) {
position.top -= overBottom;
// adjust based on position and margin
} else {
position.top = max( position.top - collisionPosTop, position.top );
}
}
},
flip: {
left: function( position, data ) {
var within = data.within,
withinOffset = within.offset.left + within.scrollLeft,
outerWidth = within.width,
offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
collisionPosLeft = position.left - data.collisionPosition.marginLeft,
overLeft = collisionPosLeft - offsetLeft,
overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
myOffset = data.my[ 0 ] === "left" ?
-data.elemWidth :
data.my[ 0 ] === "right" ?
data.elemWidth :
0,
atOffset = data.at[ 0 ] === "left" ?
data.targetWidth :
data.at[ 0 ] === "right" ?
-data.targetWidth :
0,
offset = -2 * data.offset[ 0 ],
newOverRight,
newOverLeft;
if ( overLeft < 0 ) {
newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
position.left += myOffset + atOffset + offset;
}
} else if ( overRight > 0 ) {
newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
position.left += myOffset + atOffset + offset;
}
}
},
top: function( position, data ) {
var within = data.within,
withinOffset = within.offset.top + within.scrollTop,
outerHeight = within.height,
offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
collisionPosTop = position.top - data.collisionPosition.marginTop,
overTop = collisionPosTop - offsetTop,
overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
top = data.my[ 1 ] === "top",
myOffset = top ?
-data.elemHeight :
data.my[ 1 ] === "bottom" ?
data.elemHeight :
0,
atOffset = data.at[ 1 ] === "top" ?
data.targetHeight :
data.at[ 1 ] === "bottom" ?
-data.targetHeight :
0,
offset = -2 * data.offset[ 1 ],
newOverTop,
newOverBottom;
if ( overTop < 0 ) {
newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
position.top += myOffset + atOffset + offset;
}
} else if ( overBottom > 0 ) {
newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
position.top += myOffset + atOffset + offset;
}
}
}
},
flipfit: {
left: function() {
$.ui.position.flip.left.apply( this, arguments );
$.ui.position.fit.left.apply( this, arguments );
},
top: function() {
$.ui.position.flip.top.apply( this, arguments );
$.ui.position.fit.top.apply( this, arguments );
}
}
};
// fraction support test
(function() {
var testElement, testElementParent, testElementStyle, offsetLeft, i,
body = document.getElementsByTagName( "body" )[ 0 ],
div = document.createElement( "div" );
//Create a "fake body" for testing based on method used in jQuery.support
testElement = document.createElement( body ? "div" : "body" );
testElementStyle = {
visibility: "hidden",
width: 0,
height: 0,
border: 0,
margin: 0,
background: "none"
};
if ( body ) {
$.extend( testElementStyle, {
position: "absolute",
left: "-1000px",
top: "-1000px"
});
}
for ( i in testElementStyle ) {
testElement.style[ i ] = testElementStyle[ i ];
}
testElement.appendChild( div );
testElementParent = body || document.documentElement;
testElementParent.insertBefore( testElement, testElementParent.firstChild );
div.style.cssText = "position: absolute; left: 10.7432222px;";
offsetLeft = $( div ).offset().left;
supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;
testElement.innerHTML = "";
testElementParent.removeChild( testElement );
})();
})();
return $.ui.position;
}));

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,5 @@
To generate documentation install couscous and run in this folder. Use ```couscous preview``` to run local server with the documentation.
http://couscous.io/docs/getting-started.html
The generated html will also be copied to the tests/integration/html folder for integration tests.

View File

@ -0,0 +1,142 @@
title: jQuery contextMenu
subTitle: Management facility for context menus. Developed for a large number of triggering objects. HTML5 Polyfill.
#template:
# url: https://github.com/CouscousPHP/Template-ReadTheDocs
exclude:
- website
- website-dark
baseUrl: https://swisnl.github.io/jQuery-contextMenu
scripts:
before:
- mkdir website/dist
- cp -R ../dist/* website/dist/
after:
- rm -rf website/dist/
- cp .couscous/generated/demo/* ../test/integration/html
github:
user: swisnl
repo: jQuery-contextMenu
# The left menu bar
menu:
items:
introduction:
text: Introduction
relativeUrl: /
items:
author:
text: Author
absoluteUrl: https://www.swis.nl/over-ons/bjorn-brala
demo:
text: Demo
# You can use relative urls
relativeUrl: demo.html
documentation:
text: Documentation
relativeUrl: docs.html
items:
options:
text: Options
relativeUrl: docs.html
items:
text: Defining menu items
relativeUrl: docs/items.html
plugin-commands:
text: Plugin commands
relativeUrl: docs/plugin-commands.html
custom-icons:
text: Customize icons
relativeUrl: docs/customize.html
runtime-options:
text: Runtime options
relativeUrl: docs/runtime-options.html
custom-command-types:
text: Custom command types
relativeUrl: docs/custom-command-types.html
events:
text: Events
relativeUrl: docs/events.html
html5-polyfill-docs:
text: HTML5 polyfill
relativeUrl: docs/html5-polyfill.html
demo-gallery:
text: Demo gallery
relativeUrl: demo.html
items:
simple-context-menu:
text: Simple Context Menu
relativeUrl: demo.html
accesskeys:
text: Accesskeys
relativeUrl: demo/accesskeys.html
async-create:
text: Create Context Menu (asynchronous)
relativeUrl: demo/async-create.html
callback:
text: Command's action (callbacks)
relativeUrl: demo/callback.html
custom-command:
text: Custom Command Types
relativeUrl: demo/custom-command.html
disabled:
text: Disabled Command
relativeUrl: demo/disabled.html
disabled-callback:
text: Disabled Callback Command
relativeUrl: demo/disabled-callback.html
disabled-changing:
text: Changing Command's disabled status
relativeUrl: demo/disabled-changing.html
disabled-menu:
text: Disabled Menu
relativeUrl: demo/disabled-menu.html
dynamic:
text: Adding new Context Menu Triggers
relativeUrl: demo/dynamic.html
dynamic-create:
text: Create Context Menu on demand
relativeUrl: demo/dynamic-create.html
html5-import:
text: Importing HTML5 menu
relativeUrl: demo/html5-import.html
html5-polyfill:
text: HTML5 polyfill
relativeUrl: demo/html5-polyfill.html
html5-polyfill-firefox8:
text: HTML5 polyfill (Firefox)
relativeUrl: demo/html5-polyfill-firefox8.html
input:
text: Input Commands
relativeUrl: demo/input.html
keeping-contextmenu-open:
text: Keeping the context menu open
relativeUrl: demo/keeping-contextmenu-open.html
menu-title:
text: Menus with titles
relativeUrl: demo/menu-title.html
on-dom-element:
text: Context Menu on DOM Element
relativeUrl: demo/on-dom-element.html
sub-menus:
text: Submenus
relativeUrl: demo/sub-menus.html
trigger-custom:
text: Custom Activated Context Menu
relativeUrl: demo/trigger-custom.html
trigger-hover:
text: Hover Activated Context Menu
relativeUrl: demo/trigger-hover.html
trigger-hover-autohide:
text: Hover Activated Context Menu With Autohide
relativeUrl: demo/trigger-hover-autohide.html
trigger-left-click:
text: Left-Click Trigger
relativeUrl: demo/trigger-left-click.html
trigger-swipe:
text: Swipe Trigger
relativeUrl: demo/trigger-swipe.html

View File

@ -0,0 +1,76 @@
---
currentMenu: simple-context-menu
---
# Demo: Simple Context Menu
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code: Simple Context Menu](#example-code-simple-context-menu)
- [Example HTML: Simple Context Menu](#example-html-simple-context-menu)
- [jQuery Context Menu Demo Gallery](#jquery-context-menu-demo-gallery)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code: Simple Context Menu
<script type="text/javascript" class="showcase">
$(function() {
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
copy: {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function(){
return 'context-menu-icon context-menu-icon-quit';
}}
}
});
$('.context-menu-one').on('click', function(e){
console.log('clicked', this);
})
});
</script>
## Example HTML: Simple Context Menu
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
## jQuery Context Menu Demo Gallery
* [Simple Context Menu](demo.html)
* [Context Menu on DOM Element](demo/on-dom-element.html)
* [Adding new Context Menu Triggers](demo/dynamic.html)
* [Create Context Menu on demand](demo/dynamic-create.html)
* [Create Context Menu (asynchronous)](demo/async-create.html)
* [Keeping the context menu open](demo/keeping-contextmenu-open.html)
* [Command's action (callbacks)](demo/callback.html)
* [Left-Click Trigger](demo/trigger-left-click.html)
* [Swipe Trigger](demo/trigger-swipe.html)
* [Hover Activated Context Menu](demo/trigger-hover.html)
* [Hover Activated Context Menu With Autohide](demo/trigger-hover-autohide.html)
* [Custom Activated Context Menu](demo/trigger-custom.html)
* [Disabled Menu](demo/disabled-menu.html)
* [Disabled Command](demo/disabled.html)
* [Disabled Callback Command](demo/disabled-callback.html)
* [Changing Command's disabled status](demo/disabled-changing.html)
* [Accesskeys](demo/accesskeys.html)
* [Submenus](demo/sub-menus.html)
* [Input Commands](demo/input.html)
* [Custom Command Types](demo/custom-command.html)
* [Menus with titles](demo/menu-title.html)
* [Importing HTML5 <menu type="context">](demo/html5-import.html)
* [HTML5 Polyfill](demo/html5-polyfill.html)
* [HTML5 Polyfill (Firefox)](demo/html5-polyfill-firefox8.html)

View File

@ -0,0 +1,44 @@
---
currentMenu: accesskeys
---
# Demo: Accesskeys
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit", accesskey: "e"},
"cut": {name: "Cut", icon: "cut", accesskey: "c"},
// first unused character is taken (here: o)
"copy": {name: "Copy", icon: "copy", accesskey: "c o p y"},
// words are truncated to their first letter (here: p)
"paste": {name: "Paste", icon: "paste", accesskey: "cool paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,42 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Demo: Accesskeys](#demo-accesskeys)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Demo: Accesskeys
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var message = "clicked: " + key;
$('#msg').text(message);
},
items: {
"edit": {name: "Edit", icon: "edit", accesskey: "e"},
"cut": {name: "Cut", icon: "cut", accesskey: "c"},
// first unused character is taken (here: o)
"copy": {name: "Copy", icon: "copy", accesskey: "c o p y"},
// words are truncated to their first letter (here: p)
"paste": {name: "Paste", icon: "paste", accesskey: "cool paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<div id="msg"></div>

View File

@ -0,0 +1,64 @@
---
currentMenu: async-create
---
# Demo: Create Context Menu (asynchronous)
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
// some build handler to call asynchronously
function createSomeMenu() {
return {
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"}
}
};
}
// some asynchronous click handler
$('.context-menu-one').on('mouseup', function(e){
var $this = $(this);
// store a callback on the trigger
$this.data('runCallbackThingie', createSomeMenu);
var _offset = $this.offset(),
position = {
x: _offset.left + 10,
y: _offset.top + 10
}
// open the contextMenu asynchronously
setTimeout(function(){ $this.contextMenu(position); }, 1000);
});
// setup context menu
$.contextMenu({
selector: '.context-menu-one',
trigger: 'none',
build: function($trigger, e) {
// pull a callback from the trigger
return $trigger.data('runCallbackThingie')();
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,49 @@
---
currentMenu: callback
---
# Demo: Callback
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "global: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {
name: "Edit",
icon: "edit",
// superseeds "global" callback
callback: function(key, options) {
var m = "edit was clicked";
window.console && console.log(m) || alert(m);
}
},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,48 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Demo: Callback](#demo-callback)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Demo: Callback
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var message = "global: " + key;
$('#msg').text(message);
},
items: {
"edit": {
name: "Edit",
icon: "edit",
// superseeds "global" callback
callback: function(key, options) {
var m = "edit was clicked";
$('#msg').text(m);
}
},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<div id="msg"></div>

View File

@ -0,0 +1,94 @@
---
currentMenu: custom-command
---
# Demo: Custom command
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
/**************************************************
* Custom Command Handler
**************************************************/
$.contextMenu.types.label = function(item, opt, root) {
// this === item.$node
$('<span>Label</span><ul>'
+ '<li class="label1" title="label 1">label 1</li>'
+ '<li class="label2" title="label 2">label 2</li>'
+ '<li class="label3" title="label 3">label 3</li>'
+ '<li class="label4" title="label 4">label 4</li></ul>')
.appendTo(this)
.on('click', 'li', function() {
// do some funky stuff
console.log('Clicked on ' + $(this).text());
// hide the menu
root.$menu.trigger('contextmenu:hide');
});
this.addClass('labels').on('contextmenu:focus', function(e) {
// setup some awesome stuff
}).on('contextmenu:blur', function(e) {
// tear down whatever you did
}).on('keydown', function(e) {
// some funky key handling, maybe?
});
};
/**************************************************
* Context-Menu with custom command "label"
**************************************************/
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
open: {name: "Open", callback: $.noop},
label: {type: "label", customName: "Label"},
edit: {name: "Edit", callback: $.noop}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<style type="text/css" class="showcase">
.labels > ul {
margin: 0;
padding: 0;
list-style: none;
display: block;
float: none;
}
.labels > ul > li {
display: inline-block;
width: 20px;
height: 20px;
border: 1px solid #CCC;
overflow: hidden;
text-indent: -2000px;
}
.labels > ul > li.selected,
.labels > ul > li:hover { border: 1px solid #000; }
.labels > ul > li + li { margin-left: 5px; }
.labels > ul > li.label1 { background: red; }
.labels > ul > li.label2 { background: green; }
.labels > ul > li.label3 { background: blue; }
.labels > ul > li.label4 { background: yellow; }
</style>

View File

@ -0,0 +1,94 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Demo: Custom command](#demo-custom-command)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Demo: Custom command
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
/**************************************************
* Custom Command Handler
**************************************************/
$.contextMenu.types.label = function(item, opt, root) {
// this === item.$node
$('<span>Label</span><ul>'
+ '<li class="label1" title="label 1">label 1</li>'
+ '<li class="label2" title="label 2">label 2</li>'
+ '<li class="label3" title="label 3">label 3</li>'
+ '<li class="label4" title="label 4">label 4</li></ul>')
.appendTo(this)
.on('click', 'li', function() {
var message = "text: " + $(this).text();
$('#msg').text($('#msg').text() + ' | ' + message);
// hide the menu
root.$menu.trigger('contextmenu:hide');
});
this.addClass('labels').on('contextmenu:focus', function(e) {
// setup some awesome stuff
}).on('contextmenu:blur', function(e) {
// tear down whatever you did
}).on('keydown', function(e) {
// some funky key handling, maybe?
});
};
/**************************************************
* Context-Menu with custom command "label"
**************************************************/
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var message = "clicked: " + key;
$('#msg').text(message);
},
items: {
open: {name: "Open", callback: $.noop},
label: {type: "label", customName: "Label"},
edit: {name: "Edit", callback: $.noop}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<div id="msg"></div>
<style type="text/css" class="showcase">
.labels > ul {
margin: 0;
padding: 0;
list-style: none;
display: block;
float: none;
}
.labels > ul > li {
display: inline-block;
width: 20px;
height: 20px;
border: 1px solid #CCC;
overflow: hidden;
text-indent: -2000px;
}
.labels > ul > li.selected,
.labels > ul > li:hover { border: 1px solid #000; }
.labels > ul > li + li { margin-left: 5px; }
.labels > ul > li.label1 { background: red; }
.labels > ul > li.label2 { background: green; }
.labels > ul > li.label3 { background: blue; }
.labels > ul > li.label4 { background: yellow; }
</style>

View File

@ -0,0 +1,46 @@
---
currentMenu: disabled-callback
---
# Demo: Disabled Callback
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {
name: "Clickable",
icon: "edit",
disabled: function(){ return false; }
},
"cut": {
name: "Disabled",
icon: "cut",
disabled: function(){ return true; }
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,44 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Demo: Disabled Callback](#demo-disabled-callback)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Demo: Disabled Callback
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var message = "clicked: " + key;
$('#msg').text(message);
},
items: {
"edit": {
name: "Clickable",
icon: "edit",
disabled: function(){ return false; }
},
"cut": {
name: "Disabled",
icon: "cut",
disabled: function(){ return true; }
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<div id="msg"></div>

View File

@ -0,0 +1,52 @@
---
currentMenu: disabled-changing
---
# Demo: Disabled changing
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Clickable", icon: "edit"},
"cut": {
name: "Disabled",
icon: "cut",
disabled: function(key, opt) {
// this references the trigger element
return !this.data('cutDisabled');
}
},
"toggle": {
name: "Toggle",
callback: function() {
// this references the trigger element
this.data('cutDisabled', !this.data('cutDisabled'));
return false;
}
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,50 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Demo: Disabled changing](#demo-disabled-changing)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Demo: Disabled changing
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var message = "clicked: " + key;
$('#msg').text(message);
},
items: {
"edit": {name: "Clickable", icon: "edit"},
"cut": {
name: "Disabled",
icon: "cut",
disabled: function(key, opt) {
// this references the trigger element
return !this.data('cutDisabled');
}
},
"toggle": {
name: "Toggle",
callback: function() {
// this references the trigger element
this.data('cutDisabled', !this.data('cutDisabled'));
return false;
}
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<div id="msg"></div>

View File

@ -0,0 +1,58 @@
---
currentMenu: disabled-menu
---
# Demo: Disabled menu
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral context-menu-disabled">right click me</span>
<button type="button btn btn-neutral" id="toggle-disabled">Enable Menu</button>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
$('#toggle-disabled').on('click', function(e) {
e.preventDefault();
var $this = $(this),
$trigger = $('.context-menu-one');
if ($trigger.hasClass('context-menu-disabled')) {
$this.text("Disable Menu");
$trigger.contextMenu(true);
} else {
$this.text("Enable Menu");
$trigger.contextMenu(false);
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,36 @@
---
currentMenu: disabled
---
# Demo: Disabled
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Clickable", icon: "edit", disabled: false},
"cut": {name: "Disabled", icon: "cut", disabled: true}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,35 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Demo: Disabled](#demo-disabled)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Demo: Disabled
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var message = "clicked: " + key;
$('#msg').text(message);
},
items: {
"edit": {name: "Clickable", icon: "edit", disabled: false},
"cut": {name: "Disabled", icon: "cut", disabled: true}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<div id="msg"></div>

View File

@ -0,0 +1,49 @@
---
currentMenu: dynamic-create
---
# Demo: Adding new Context Menu Triggers
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
build: function($trigger, e) {
// this callback is executed every time the menu is to be shown
// its results are destroyed every time the menu is hidden
// e is the original contextmenu event, containing e.pageX and e.pageY (amongst other data)
return {
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
};
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,55 @@
---
currentMenu: dynamic
---
# Demo: Adding new Context Menu Triggers
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
`jQuery.contextMenu` allows you to define a &lt;menu&gt; before the trigger elements are available.
<div>
<button id="add-trigger" class="btn btn-default" type="submit">Button</button>
</div>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
// add new trigger
$('#add-trigger').on('click', function(e) {
$('<div class="context-menu-one clear btn btn-neutral menu-injected">'
+ 'right click me <em>(injected)</em>'
+ '</div><br>').insertBefore(this);
// not need for re-initializing $.contextMenu here :)
});
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,52 @@
---
currentMenu: html5-import
---
# Demo: Importing HTML5 `<menu type="context">`
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
`jQuery.contextMenu` allows you to import HTML5's `<menu>` structures to use in older browsers.
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
items: $.contextMenu.fromMenu($('#html5menu'))
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
```html
<menu id="html5menu" style="display:none" class="showcase">
<command label="rotate" icon="edit" onclick="alert('rotate')">
<command label="resize" onclick="alert('resize')">
<command label="twitter" onclick="alert('twitter')">
<hr>
<command label="facebook" onclick="alert('facebook')">
</menu>
</menu>
```
<menu id="html5menu" type="context" style="display:none">
<command label="rotate" icon="edit" onclick="alert('rotate')">
<command label="resize" onclick="alert('resize')">
<command label="twitter" onclick="alert('twitter')">
<hr>
<command label="facebook" onclick="alert('facebook')">
</menu>
</menu>

View File

@ -0,0 +1,66 @@
---
currentMenu: html5-polyfill-firefox8
---
# Demo: HTML5 Polyfill (Firefox)
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral" contextmenu="html5firefox8">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu('html5');
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
```html
<menu id="html5firefox8" type="context" >
<menuitem label="rotate" onclick="alert('rotate')" hint="I'm a hint"></menuitem>
<menuitem label="resize" onclick="alert('resize')"></menuitem>
<menuitem label="disabled" onclick="alert('disabled')" disabled></menuitem>
<menu label="share">
<menuitem label="twitter" onclick="alert('twitter')"></menuitem>
<menuitem label="facebook" onclick="alert('facebook')"></menuitem>
<hr>
<menuitem type="checkbox" label="(checkbox) yes or no?"
onclick="alert('checkbox: ' + (this.checked ? 'yep!' : 'nope'))"></menuitem>
<hr>
<menuitem type="radio" label="(radio) yes" radiogroup="alpha" checked
onclick="alert('radio: yes')"></menuitem>
<menuitem type="radio" label="(radio) no" radiogroup="alpha"
onclick="alert('radio: no')"></menuitem>
</menu>
</menu>
```
<menu id="html5firefox8" type="context">
<menuitem label="rotate" onclick="alert('rotate')" hint="I'm a hint"></menuitem>
<menuitem label="resize" onclick="alert('resize')"></menuitem>
<menuitem label="disabled" onclick="alert('disabled')" disabled></menuitem>
<menu label="share">
<menuitem label="twitter" onclick="alert('twitter')"></menuitem>
<menuitem label="facebook" onclick="alert('facebook')"></menuitem>
<hr>
<menuitem type="checkbox" label="(checkbox) yes or no?"
onclick="alert('checkbox: ' + (this.checked ? 'yep!' : 'nope'))"></menuitem>
<hr>
<menuitem type="radio" label="(radio) yes" radiogroup="alpha" checked
onclick="alert('radio: yes')"></menuitem>
<menuitem type="radio" label="(radio) no" radiogroup="alpha"
onclick="alert('radio: no')"></menuitem>
</menu>
</menu>

View File

@ -0,0 +1,55 @@
---
currentMenu: html5-polyfill
---
# Demo: HTML5 Polyfill
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
`jQuery.contextMenu` allows you to import HTML5's &lt;menu&gt; structures to use in older browsers.
<span class="context-menu-one btn btn-neutral" contextmenu="html5polyfill">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu('html5');
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
```html
<menu id="html5polyfill" type="context" style="display:none">
<command label="rotate" onclick="alert('rotate')" icon="images/cut.png">
<command label="resize" onclick="alert('resize')" icon="images/door.png">
<menu label="share">
<command label="twitter" onclick="alert('twitter')" icon="images/page_white_copy.png">
<hr>
<command label="facebook" onclick="alert('facebook')" icon="images/page_white_edit.png">
<hr>
<label>foo bar<input type="text" name="foo"></label>
</menu>
</menu>
```
<menu id="html5polyfill" type="context" style="display:none">
<command label="rotate" onclick="alert('rotate')" icon="images/cut.png">
<command label="resize" onclick="alert('resize')" icon="images/door.png">
<menu label="share">
<command label="twitter" onclick="alert('twitter')" icon="images/page_white_copy.png">
<hr>
<command label="facebook" onclick="alert('facebook')" icon="images/page_white_edit.png">
<hr>
<label>foo bar<input type="text" name="foo"></label>
</menu>
</menu>

View File

@ -0,0 +1,121 @@
---
currentMenu: input
---
# Demo: Input Commands
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
items: {
// <input type="text">
name: {
name: "Text",
type: 'text',
value: "Hello World",
events: {
keyup: function(e) {
// add some fancy key handling here?
window.console && console.log('key: '+ e.keyCode);
}
}
},
sep1: "---------",
// <input type="checkbox">
yesno: {
name: "Boolean",
type: 'checkbox',
selected: true
},
sep2: "---------",
// <input type="radio">
radio1: {
name: "Radio1",
type: 'radio',
radio: 'radio',
value: '1'
},
radio2: {
name: "Radio2",
type: 'radio',
radio: 'radio',
value: '2',
selected: true
},
radio3: {
name: "Radio3",
type: 'radio',
radio: 'radio',
value: '3'
},
radio4: {
name: "Radio3",
type: 'radio',
radio: 'radio',
value: '4',
disabled: true
},
sep3: "---------",
// <select>
select: {
name: "Select",
type: 'select',
options: {1: 'one', 2: 'two', 3: 'three'},
selected: 2
},
// <textarea>
area1: {
name: "Textarea with height",
type: 'textarea',
value: "Hello World",
height: 40
},
area2: {
name: "Textarea",
type: 'textarea',
value: "Hello World"
},
sep4: "---------",
key: {
name: "Something Clickable",
callback: $.noop
}
},
events: {
show: function(opt) {
// this is the trigger element
var $this = this;
// import states from data store
$.contextMenu.setInputValues(opt, $this.data());
// this basically fills the input commands from an object
// like {name: "foo", yesno: true, radio: "3", …}
},
hide: function(opt) {
// this is the trigger element
var $this = this;
// export states to data store
$.contextMenu.getInputValues(opt, $this.data());
// this basically dumps the input commands' values to an object
// like {name: "foo", yesno: true, radio: "3", …}
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,45 @@
---
currentMenu: keeping-contextmenu-open
---
# Demo: Keeping the Menu visible
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {
name: "Closing on Click",
icon: "edit",
callback: function(){ return true; }
},
"cut": {
name: "Open after Click",
icon: "cut",
callback: function(){ return false; }
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,143 @@
---
currentMenu: menu-title
---
# Demo: Menu Title
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example CSS](#example-css)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
<span class="context-menu-two btn btn-neutral">right click me</span>
<span class="context-menu-three btn btn-neutral">right click me</span>
## Example CSS
<style type="text/css" class="showcase">
/* menu header */
.css-title:before {
content: "some CSS title";
display: block;
position: absolute;
top: 0;
right: 0;
left: 0;
background: #DDD;
padding: 2px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
}
.css-title :first-child {
margin-top: 20px;
}
/* menu header via data attribute */
.data-title:before {
content: attr(data-menutitle);
display: block;
position: absolute;
top: 0;
right: 0;
left: 0;
background: #DDD;
padding: 2px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
}
.data-title :first-child {
margin-top: 20px;
}
</style>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
// register regular menu
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
// register menu with title provided by CSS
$.contextMenu({
selector: '.context-menu-two',
className: 'css-title',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
// register menu with title provided by data-attribute
$.contextMenu({
selector: '.context-menu-three',
className: 'data-title',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
// set a title
$('.data-title').attr('data-menutitle', "Some JS Title");
});
</script>
## Example HTML
```html
<span class="context-menu-one btn btn-neutral">right click me</span>
<span class="context-menu-two btn btn-neutral">right click me</span>
<span class="context-menu-three btn btn-neutral">right click me</span>
```

View File

@ -0,0 +1,56 @@
---
currentMenu: on-dom-element
---
# Demo: Context Menu on DOM Element
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<ul id="the-node">
<li><span class="context-menu-one btn btn-neutral">right click me 1</span></li>
<li><span class="context-menu-one btn btn-neutral">right click me 2</span></li>
<li>right click me 3</li>
<li>right click me 4</li>
</ul>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$('#the-node').contextMenu({
selector: 'li',
callback: function(key, options) {
var m = "clicked: " + key + " on " + $(this).text();
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
```html
<ul id="the-node">
<li><span class="context-menu-one btn btn-neutral">right click me 1</span></li>
<li><span class="context-menu-one btn btn-neutral">right click me 2</span></li>
<li>right click me 3</li>
<li>right click me 4</li>
</ul>
```

View File

@ -0,0 +1,66 @@
---
currentMenu: sub-menus
---
# Demo: Submenus
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
/**************************************************
* Context-Menu with Sub-Menu
**************************************************/
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {"name": "Edit", "icon": "edit"},
"cut": {"name": "Cut", "icon": "cut"},
"sep1": "---------",
"quit": {"name": "Quit", "icon": "quit"},
"sep2": "---------",
"fold1": {
"name": "Sub group",
"items": {
"fold1-key1": {"name": "Foo bar"},
"fold2": {
"name": "Sub group 2",
"items": {
"fold2-key1": {"name": "alpha"},
"fold2-key2": {"name": "bravo"},
"fold2-key3": {"name": "charlie"}
}
},
"fold1-key3": {"name": "delta"}
}
},
"fold1a": {
"name": "Other group",
"items": {
"fold1a-key1": {"name": "echo"},
"fold1a-key2": {"name": "foxtrot"},
"fold1a-key3": {"name": "golf"}
}
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,64 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Demo: Submenus](#demo-submenus)
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Demo: Submenus
<span class="context-menu-one btn btn-neutral">right click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
/**************************************************
* Context-Menu with Sub-Menu
**************************************************/
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var message = "clicked: " + key;
$('#msg').text(message);
},
items: {
"edit": {"name": "Edit", "icon": "edit"},
"cut": {"name": "Cut", "icon": "cut"},
"sep1": "---------",
"quit": {"name": "Quit", "icon": "quit"},
"sep2": "---------",
"fold1": {
"name": "Sub group",
"items": {
"fold1-key1": {"name": "Foo bar"},
"fold2": {
"name": "Sub group 2",
"items": {
"fold2-key1": {"name": "alpha"},
"fold2-key2": {"name": "bravo"},
"fold2-key3": {"name": "charlie"}
}
},
"fold1-key3": {"name": "delta"}
}
},
"fold1a": {
"name": "Other group",
"items": {
"fold1a-key1": {"name": "echo"},
"fold1a-key2": {"name": "foxtrot"},
"fold1a-key3": {"name": "golf"}
}
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>
<div id="msg"></div>

View File

@ -0,0 +1,53 @@
---
currentMenu: trigger-custom
---
# Demo: Custom Activated Context Menu
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">press that button</span>
<button id="activate-menu" class="btn btn-default" type="submit">Button</button>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
// make button open the menu
$('#activate-menu').on('click', function(e) {
e.preventDefault();
$('.context-menu-one').contextMenu();
// or $('.context-menu-one').trigger("contextmenu");
// or $('.context-menu-one').contextMenu({x: 100, y: 100});
});
$.contextMenu({
selector: '.context-menu-one',
trigger: 'none',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,45 @@
---
currentMenu: trigger-hover-autohide
---
# Demo: Hover Activated Context Menu With Autohide
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">hover over me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
trigger: 'hover',
delay: 500,
autoHide: true,
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,45 @@
---
currentMenu: trigger-hover
---
# Demo: Hover Activated Context Menu
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">hover over me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
trigger: 'hover',
delay: 500,
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,43 @@
---
currentMenu: trigger-left-click
---
# Demo: Left-Click Trigger
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<span class="context-menu-one btn btn-neutral">left click me</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
$.contextMenu({
selector: '.context-menu-one',
trigger: 'left',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"paste": {name: "Paste", icon: "paste"},
"delete": {name: "Delete", icon: "delete"},
"sep1": "---------",
"quit": {name: "Quit", icon: function($element, key, item){ return 'context-menu-icon context-menu-icon-quit'; }}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,65 @@
---
currentMenu: trigger-swipe
---
# Demo: Swipe Trigger
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Example code](#example-code)
- [Example HTML](#example-html)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery.touchswipe/1.6.12/jquery.touchSwipe.min.js'></script>
This demo uses the (third party) [TouchSwipe](https://github.com/mattbryson/TouchSwipe-Jquery-Plugin) plugin.
<span class="context-menu-one btn btn-neutral">swype right</span>
## Example code
<script type="text/javascript" class="showcase">
$(function(){
// make swipe right open the menu
$('.context-menu-one').swipe({
// see http://labs.skinkers.com/touchSwipe/
swipe: function(event, direction, distance, duration, fingerCount) {
if (fingerCount === 1) {
$(this).contextMenu({
x: event.changedTouches[0].screenX,
y: event.changedTouches[0].screenY,
});
}
}
});
$.contextMenu({
selector: '.context-menu-one',
trigger: 'none',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m) || alert(m);
},
items: {
"edit": {name: "Edit", icon: "edit"},
"cut": {name: "Cut", icon: "cut"},
"copy": {name: "Copy", icon: "copy"},
"fold1a": {
"name": "Some submenu",
"items": {
"fold1a-key1": {"name": "echo"},
"fold1a-key2": {"name": "foxtrot"},
"fold1a-key3": {"name": "golf"}
}
}
}
});
});
</script>
## Example HTML
<div style="display:none;" class="showcase" data-showcase-import=".context-menu-one"></div>

View File

@ -0,0 +1,398 @@
---
currentMenu: options
---
# Documentation
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Register new contextMenu](#register-new-contextmenu)
- [Options (at registration)](#options-at-registration)
- [selector](#selector)
- [items](#items)
- [appendTo](#appendto)
- [trigger](#trigger)
- [reposition](#reposition)
- [delay](#delay)
- [autoHide](#autohide)
- [zIndex](#zindex)
- [className](#classname)
- [classNames](#classnames)
- [animation](#animation)
- [events](#events)
- [position](#position)
- [determinePosition](#determineposition)
- [callback](#callback)
- [build](#build)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Register new contextMenu
To register a new contextMenu:
```javascript
$.contextMenu( options );
```
## Options (at registration)
### selector
The jQuery selector matching the elements to trigger on. This option is mandatory.
`selector`: `string`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu'
});
```
### items
Object with [items](docs/items.html) to be listed in contextMenu. See [items](docs/items.html) for a full documentation on how to build your menu items.
`items`: `object` Object containing [items](docs/items.html) objects.
#### Example
```javascript
$.contextMenu({
selector: '.context-menu',
items: {
copy: {
name: "Copy",
callback: function(key, opt){
alert("Clicked on " + key);
}
}
}
});
```
### appendTo
Specifies the selctor string or DOMElement the generated menu is to be appended to.
`appendTo`: `string` or `DOMElement` default: `document.body`
#### Example
```javascript
// select the container with a selector
$.contextMenu({
selector: 'span.context-menu',
appendTo: 'div#context-menus-container'
});
// select the container with a dom element
var element = document.getElementById('#context-menus-container');
$.contextMenu({
selector: 'span.context-menu',
appendTo: element
});
```
### trigger
Specifies what event on the element specified in the [selector](#selector) triggers the contextmenu.
`appendTo`: `string` default: `'right'`
Value | Description
---- | ----
`right` | Right mouse button
`left` | Left mouse button
`hover` | Hover the element
`none` | No trigger
#### Example
```javascript
// trigger with left mouse button
$.contextMenu({
selector: 'span.context-menu',
trigger: 'left'
});
// trigger on hover
var element = document.getElementById('#context-menus-container');
$.contextMenu({
selector: 'span.context-menu',
trigger: 'hover'
});
```
### reposition
Specifies if a menu should be repositioned (`true`) or rebuilt (`false`) if a second [trigger](#trigger) event (like a right click) is performed on the same element (or its children) while the menu is still visible.
`reposition`: `boolean` default: `true`
Value | Description
---- | ----
`true` | Reposition menu when triggered
`false` | Rebuild menu when triggered
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
reposition: false
});
```
### delay
Specifies the time in milliseconds to wait before showing the menu. Only applies to [trigger](#trigger): "hover"
`delay`: `int` default: `200`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
delay: 500
});
```
### autoHide
Specifies if the menu must be hidden when the mouse pointer is moved out of the [trigger](#trigger) and [menu items](#items).
`autoHide`: `boolean` default: `false`
Value | Description
---- | ----
`true` | Hide the menu on mouseout
`false` | Do not hide the menu on mouseout
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
autoHide: true
});
```
### zIndex
Specifies the offset to add to the calculated zIndex of the [trigger](#trigger) element. Set to `0` to prevent zIndex manipulation. Can be a function that returns an int to calculate the zIndex on build.
`zIndex`: `int`|`function` default: `1`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
zIndex: 10
});
$.contextMenu({
selector: 'span.context-menu',
zIndex: function($trigger, opt){
return 120;
});
```
### className
Specifies additional classNames to add to the menu element. Seperate multiple classes by using spaces.
`className`: `string`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
className: 'contextmenu-custom contextmenu-custom__highlight'
});
```
### classNames
Specifies the base class names of the contextmenu elements. This can be used to change the class names of some classes that might conflict with frameworks like Bootstrap.
`classNames`: `object`
```javascript
// Classname configuration to be able avoid conflicts in frameworks
var options = {
classNames : {
hover: 'hover', // Item hover
disabled: 'disabled', // Item disabled
visible: 'visible', // Item visible
notSelectable: 'not-selectable', // Item not selectable
icon: 'context-menu-icon', // Base icon class
iconEdit: 'context-menu-icon-edit',
iconCut: 'context-menu-icon-cut',
iconCopy: 'context-menu-icon-copy',
iconPaste: 'context-menu-icon-paste',
iconDelete: 'context-menu-icon-delete',
iconAdd: 'context-menu-icon-add',
iconQuit: 'context-menu-icon-quit'
}
}
```
### animation
Animation properties take effect on showing and hiding the menu. Duration specifies the duration of the animation in milliseconds. `show` and `hide` specify [jQuery methods](http://api.jquery.com/category/effects/) to show and hide elements.
`animation`: `object` default: `{duration: 500, show: 'slideDown', hide: 'slideUp'}`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
animation: `{duration: 250, show: 'fadeIn', hide: 'faseOut'}`
});
```
### events
<!-- @todo runtime options object -->
The `show` and `hide` events are triggered *before* the menu is shown or hidden. The event handlers are executed in the context of the triggering object. This will thus reference the jQuery handle of the [trigger](#trigger) object.
A reference to the current options object is passed, the options object is a collection of current options and references to the DOM nodes of the menu. The event handlers may return `false` to prevent the `show` or `hide` process.
`events`: `object`
Value | Description
---- | ----
`events.show` | Called before show of the contextmenu
`events.hide` | Called before hide of the contextmenu
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
events: {
show : function(options){
// Add class to the menu
this.addClass('currently-showing-menu');
// Show an alert with the selector of the menu
if( confirm('Open menu with selector ' + opt.selector + '?') === true ){
return true;
} else {
// Prevent the menu to be shown.
return false;
}
},
show : function(options){
if( confirm('Hide menu with selector ' + opt.selector + '?') === true ){
return true;
} else {
// Prevent the menu to be hidden.
return false;
}
}
});
```
### position
Callback to overide how the position the context menu is de. The function is executed in the context of the trigger object.
The first argument is the `$menu` jQuery object, which is the menu element. The second and third arguments are `x` and `y` coordinates provided by the `show` event.
The `x` and `y` may either be integers denoting the offset from the top left corner, `undefined`, or the string `"maintain"`. If the string `"maintain"` is provided, the current position of the `$menu` must be used. If the coordinates are `undefined`, appropriate coordinates must be determined. An example of how this can be achieved is provided with [determinePosition](#determinePosition).
`position`: `function(opt.$menu, x, y)`
Value `x` or `y` | Description
---- | ----
`int` | Offset in pixels from top-left of trigger element.
`"maintain"` | Maintain current `x` or `y` coordinate
`undefined` | Unknown, [determinePosition](#determinePosition) is called.
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
position: function(opt, x, y){
opt.$menu.css({top: 123, left: 123});
}
});
```
### determinePosition
Determine the position of the menu in respect to the given [trigger](#trigger) object, this function is called when there is no `x` and `y` set on the [position](#position) call.
`determinePosition`: `function(opt.$menu)`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
determinePosition: function($menu){
// Position using jQuery.ui.position
// http://api.jqueryui.com/position/
$menu.css('display', 'block')
.position({ my: "center top", at: "center bottom", of: this, offset: "0 5"})
.css('display', 'none');
}
});
```
### callback
<!-- @todo link item.callback -->
Specifies the default callback to be used in case an [item](#items) does not expose its own callback. The default callback behaves just like item.callback.
`callback`: `function(itemKey, opt)`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
callback: function(itemKey, opt){
// Alert the key of the item and the trigger element's id.
alert("Clicked on " + itemKey + " on element " + opt.$trigger.attr("id"));
// Do not close the menu after clicking an item
return false;
}
});
```
### build
The callback is executed with two arguments given: the jQuery reference to the triggering element and the original contextemnu event. It is executed without context (so this won't refer to anything useful).
If the build callback is found at registration, the menu is not built right away. The menu creation is delayed to the point where the menu is actually called to show. Dynamic menus don't stay in the DOM. After a menu created with build is hidden, its DOM-footprint is destroyed.
With build, only the options [selector](#selector) and [trigger](#trigger) may be specified in the [options](#options-at-registration) object. All other options need to be returned from the build callback.
the build callback may return a boolean false to signal contextMenu to not display a context menu
`build`: `function($triggerElement, event)`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
build: function($triggerElement, e){
return {
callback: function(){},
items: {
menuItem: {name: "My on demand menu item"}
}
};
}
});
```

View File

@ -0,0 +1,35 @@
---
currentMenu: custom-command-types
---
# Custom Command Types
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Besides the built-in command types custom handlers can be defined. The command generator must be placed in `$.contextMenu.types`. It is identified by the key given in that object. The generator function is executed in the context of the new command's `<li>` within the menu. item is the object passed at creation. Use this to pass values from your definition to the generator. `opt` is the current menu level, `root` is the menu's root-level `opt` (relevant for sub-menus only).
A custom command type can be whatever you like it to be, it can behave how ever you want it to behave. Besides the keyboard interaction paradigm (`up`, `down`, `tab`, `escape`) key-events are passed on to the `<li>` which can be accessed via `$(this).on('keydown', …);`
Note that you'll probably want to disable default action handling (click, pressing enter) in favor of the custom command's behavior.
```javascript
$.contextMenu.types.myType = function(item, opt, root) {
$('<span>' + item.customName + '</span>').appendTo(this);
this.on('contextmenu:focus', function(e) {
// setup some awesome stuff
}).on('contextmenu:blur', function(e) {
// tear down whatever you did
}).on('keydown', function(e) {
// some funky key handling, maybe?
});
};
$.contextMenu({
selector: '.context-menu-custom',
items: {
label: {type: "myType", customName: "Foo Bar"}
}
});
```

View File

@ -0,0 +1,26 @@
---
currentMenu: custom-icons
---
## Customize icons
You can add icons to src/icons and run ``gulp build-icons``. This will make the icons available for use in the contextmenu using the icon property.
So for example the file checkmark.svg wil result in the CSS context-menu-icon-checkmark which you can use by using the [icon option](items#icon) when defining a menu item.
### Example
```javascript
var items = {
firstCommand: {
name: "Paste",
icon: "checkmark" // Class context-menu-icon-checkmark is used on the menu item. This is generated from checkmark.svg
}
}
```
Font-Awesome icons used from [encharm/Font-Awesome-SVG-PNG](https://github.com/encharm/Font-Awesome-SVG-PNG). You can download more there if you like.
## Customize CSS
You can use the _variables.scss to adjust variables on pretty much everything you want to change.

View File

@ -0,0 +1,111 @@
---
currentMenu: events
---
# Events
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [contextmenu](#contextmenu)
- [prevcommand](#prevcommand)
- [nextcommand](#nextcommand)
- [contextmenu:hide](#contextmenuhide)
- [contextmenu:focus](#contextmenufocus)
- [contextmenu:blur](#contextmenublur)
- [keydown](#keydown)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
List of events that are triggered on the menu. You can manually trigger some events to control the menu.
## contextmenu
`contextmenu` : Trigger context menu to be shown for a trigger object.
Available on trigger object. The Event must be supplied with coordinates for the menu: `{pageX: 123, pageY:123}`
```
$('.context-menu-one').first().trigger(
$.Event('contextmenu', {pageX: 123, pageY: 123})
);
$('.context-menu-one').first().trigger("contextmenu");
```
will invoke `determinePosition` to position the menu.
## prevcommand
`prevcommand` : Select / highlight the previous possible command
Available on context menu.
```
opt.$menu.trigger("prevcommand");
```
## nextcommand
`nextcommand` : Select / highlight the next possible command
Available on context menu.
```
opt.$menu.trigger("nextcommand");
```
## contextmenu:hide
`contextmenu:hide` : Hide the menu
Available on context menu.
```
opt.$menu.trigger("contextmenu:hide");
```
## contextmenu:focus
`contextmenu:focus` : React to a command item being focused
Triggered on context menu item when mouse or keyboard interaction lead to a "hover state" for that command item.
```
$(document.body).on("contextmenu:focus", ".context-menu-item",
function(e){
console.log("focus:", this);
}
);
```
## contextmenu:blur
`contextmenu:blur` : Available on each context menu item.
Triggered on context menu item when mouse or keyboard interaction lead from a "hover state" to "default state" for that command item.
```
$(document.body).on("contextmenu:blur", ".context-menu-item",
function(e){
console.log("blur:", this);
}
);
```
## keydown
`keydown` : Available on each context menu item.
Triggered on context menu item when keyboard interaction could not be handled by jQuery.contextMenu.
```
$(document.body).on("keydown", ".context-menu-item",
function(e){
console.log("key:", e.keyCode);
}
);
```

View File

@ -0,0 +1,68 @@
---
currentMenu: html5-polyfill
---
# HTML5 `<menu>` shiv/polyfill
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [HTML5 `<menu>` import](#html5-menu-import)
- [HTML5 `<menu>` shiv/polyfill](#html5-menu-shivpolyfill)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## HTML5 `<menu>` import
considering the following HTML `$.contextMenu.fromMenu($('#html5menu'))` will return a proper items object.
```
<menu id="html5menu" type="context" style="display:none">
<command label="rotate" onclick="alert('rotate')">
<command label="resize" onclick="alert('resize')">
<menu label="share">
<command label="twitter" onclick="alert('twitter')">
<hr>
<command label="facebook" onclick="alert('facebook')">
</menu>
</menu>
```
`$.contextMenu.fromMenu()` will properly import (and thus handle) the following elements. Everything else is imported as `{type: "html"}`
```
<menu>
<hr>
<a>
<command type="command|radio|checkbox"> (W3C Specification)
<menuitem type="command|radio|checkbox"> (Firefox)
<input type="text|radio|checkbox">
<select>
<textarea>
<label for="someId">
<label> the text <input|textarea|select>
```
The `<menu>` must be hidden but not removed, as all command events (clicks) are passed-thru to the original command element!
Note: While the specs note `<option>`s to be renderd as regular commands, `$.contextMenu` will render an actual `<select>`.
## HTML5 `<menu>` shiv/polyfill
Engaging the HTML5 polyfill (ignoring `$.contextMenu` if context menus are available natively):
```
$(function(){
$.contextMenu("html5");
});
```
Engaging the HTML5 polyfill (ignoring browser native implementation):
```
$(function(){
$.contextMenu("html5", true);
});
```

View File

@ -0,0 +1,61 @@
---
currentMenu: input-helpers
---
# Helpers
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Import values for `<input>`](#import-values-for-input)
- [Export values from `<input>`](#export-values-from-input)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Import values for `<input>`
To fill input commands with values from a map:
```
{events: {
hide: function(opt){
$.contextMenu.getInputValues(opt, {command1: "foo", command2: "bar"});
}
}
}
```
To fill input commands with values from data-attributes:
```
{events: {
hide: function(opt){
$.contextMenu.getInputValues(opt, this.data());
}
}
}
```
## Export values from `<input>`
To fetch values from input commands:
```
{events: {
hide: function(opt){
var values = $.contextMenu.setInputValues(opt}
}
}
```
To save values from input commands to data-attributes:
```
{events: {
hide: function(opt){
$.contextMenu.setInputValues(opt, this.data()); }
}
}
```

View File

@ -0,0 +1,489 @@
---
currentMenu: items
---
# Items
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [options.items](#optionsitems)
- [name](#name)
- [callback](#callback)
- [className](#classname)
- [icon](#icon)
- [disabled](#disabled)
- [visible](#visible)
- [type](#type)
- [events](#events)
- [value](#value)
- [selected](#selected)
- [radio](#radio)
- [options](#options)
- [height](#height)
- [items](#items)
- [accesskey](#accesskey)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
The items map contains the commands to list in the menu. Each command has a unique key identifying an item object. The value may either be an item (properties explained below), or a string (which will insert a separator, disregarding the string's content). It is also possible to define a seperator the same as an item, and use the `type`:`cm_seperator` to define it.
```javascript
var items = {
firstCommand: itemOptions,
separator1: "-----",
separator2: { "type": "cm_seperator" }
command2: itemOptions
}
```
## options.items
### name
Specify the human readable name of the command in the menu. This is used as the label for the option.
`name`: `string`
#### Example
```javascript
var items = {
firstCommand: {
name: "Copy"
}
}
```
### callback
Specifies the callback to execute if clicked on
The Callback is executed in the context of the triggering object. The first argument is the key of the command. The second argument is the options object. The Callback may return false to prevent the menu from being hidden.
If no callback and no default callback is specified, the item will not have an action
`callback`: `function(itemKey, opt)`
#### Example
```javascript
var items = {
firstCommand: {
name: "Copy",
callback: function(itemKey, opt){
// Alert the key of the item and the trigger element's id.
alert("Clicked on " + itemKey + " on element " + opt.$trigger.id);
// Do not close the menu after clicking an item
return false;
}
}
}
```
### className
Specifies additional classNames to add to the menu item. Seperate multiple classes by using spaces.
`className`: `string`
#### Example
```javascript
var items = {
firstCommand: {
name: "Copy",
className: 'contextmenu-item-custom contextmenu-item-custom__highlight'
}
}
```
### icon
Specifies the icon class to set for the item.
When using a string icons must be defined in CSS with selectors like `.context-menu-item.context-menu-icon-edit`, where `edit` is the icon class specified.
When using a callback you can return a class string to use that as the class on the item. You can also modify the element by using the `$itemElement` argument.
`icon`: `string` or `function(opt, $itemElement, itemKey, item)`
#### Example
```javascript
var items = {
firstCommand: {
name: "Copy",
icon: function(opt, $itemElement, itemKey, item){
// Set the content to the menu trigger selector and add an bootstrap icon to the item.
$itemElement.html('<span class="glyphicon glyphicon-star" aria-hidden="true"></span> ' + opt.selector);
// Add the context-menu-icon-updated class to the item
return 'context-menu-icon-updated';
}
},
secondCommand: {
name: "Paste",
icon: "paste" // Class context-menu-icon-paste is used on the menu item.
}
}
```
### disabled
<!-- @todo options object -->
Specifies if the command is disabled (`true`) or enabled (`false`).
May be a callback returning a `boolean`. The callback is executed in the context of the triggering object (so this inside the function refers to the element the context menu was shown for). The first argument is the `key` of the command. The second argument is the `options object`.
`disabled`: `string` or `function(itemKey, opt)`
#### Example
```javascript
var items = {
firstCommand: {
name: "Copy",
disabled: function(key, opt){
// Disable this item if the menu was triggered on a div
if(opt.$trigger.nodeName === 'div'){
return true;
}
}
}
}
```
### visible
<!-- @todo options object -->
Specifies if the command is visible (`true`) or not (`false`).
May be a callback returning a boolean. The callback is executed in the context of the triggering object (so this inside the function refers to the element the context menu was shown for). The first argument is the key of the command. The second argument is the `options object`.
`disabled`: `string` or `function(itemKey, opt)`
#### Example
```javascript
var items = {
firstCommand: {
name: "Copy",
visible: function(key, opt){
// Hide this item if the menu was triggered on a div
if(opt.$trigger.nodeName === 'div'){
return false;
}
}
}
}
```
### type
Specifies the type of the command.
`type`: `null`, `undefined`, `text`, `textarea`, `checkbox`, `radio`, `select`, `html` default: `null`
Value | Description
---- | ----
`null`, `undefined` , `""` | The command is a simple clickable item.
`"text"` | Makes the command an `<input>` of type `text`.<br>The name followed by the `<input>` are encapsulated in a `<label>`.
`"textarea"` | Makes the command a `<textarea>`. <br>The name followed by the `<input>` are encapsulated in a `<label>`.
`"checkbox"` | Makes the command an `<input>` of type checkbox. <br>The name preceeded by the `<input>` are encapsulated in a `<label>`. <br>The checkbox-element is moved to the icon space
`"radio"` | Makes the command an `<input>` of type radio. <br>The name preceeded by the `<input>` are encapsulated in a `<label>`. <br>The radio-element is moved to the icon space
`"select"` | Makes the command a `<select>`. <br>The name followed by the `<select>` are encapsulated in a `<label>`.
`"html"` | Makes an non-command element.
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
items: {
name: {
name: "Text",
type: 'text',
value: "Hello World",
events: {
keyup: function(e) {
// add some fancy key handling here?
window.console && console.log('key: '+ e.keyCode);
}
}
},
sep1: "---------",
// <input type="checkbox">
yesno: {
name: "Boolean",
type: 'checkbox',
selected: true
},
sep2: "---------",
// <input type="radio">
radio1: {
name: "Radio1",
type: 'radio',
radio: 'radio',
value: '1'
},
radio2: {
name: "Radio2",
type: 'radio',
radio: 'radio',
value: '2',
selected: true
},
sep3: "---------",
// <select>
select: {
name: "Select",
type: 'select',
options: {1: 'one', 2: 'two', 3: 'three'},
selected: 2
},
// <textarea>
area1: {
name: "Textarea with height",
type: 'textarea',
value: "Hello World",
height: 40
},
area2: {
name: "Textarea",
type: 'textarea',
value: "Hello World"
},
sep4: "---------",
key: {
name: "Something Clickable",
callback: $.noop
}
}
});
```
### events
Events to register on `<input>` elements. The contents of the options object are passed to jQuery event.data.
__Only used with [types](#type) `text`, `textarea`, `radio`, `checkbox` and `select`.__
`events`: `object`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
events: {
command1: {
name: "Foobar",
type: "text",
events: {
keyup: function(e){
alert(e.keyCode);
alert(e.data.$trigger.attr("id"));
}
}
}
}
});
```
### value
The value of the `<input>` element.
__Only used with [types](#type) `text`, `textarea`, `radio`.__
`value`: `string`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
command1: {
name: "Foobar",
type: "text",
value: "default value"
}
});
```
### selected
The selected option of a `select` element and the checked property for `checkbox` and `radio` types.
__Only used with [types](#type) `select`, `checkbox`, `radio`.__
`selected`: `string` or `boolean`
Value | Description
---- | ----
`boolean` | Use with `checkbox` and `radio` to check.
`string` | Use with `select` to select that option.
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
items: {
// <select>
select: {
name: "Select",
type: 'select',
options: {1: 'one', 2: 'two', 3: 'three'},
selected: "2"
}
}
});
```
### radio
Specifies the group of the radio elements.
__Only used with [type](#type) `radio`.__
`radio`: `string`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
items: {
// <input type="radio">
radio1: {
name: "Radio1",
type: 'radio',
radio: 'radio',
value: '1'
},
radio2: {
name: "Radio2",
type: 'radio',
radio: 'radio',
value: '2',
selected: true
}
}
});
```
### options
Specifies the `<option>` elements for the `<select>` element.
__Only used with [type](#type) `select`.__
`options`: `object`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
items: {
// <select>
select: {
name: "Select",
type: 'select',
options: {1: 'one', 2: 'two', 3: 'three'},
selected: "2"
}
}
});
```
### height
The height in pixel `<textarea>` element. If not specified, the height is defined by CSS.
__Only used with [type](#type) `textarea`.__
`height`: `int`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
items: {
// <select>
myTextarea: {
name: "Textarea",
type: 'textarea',
height: 200
}
}
});
```
### items
Commands to show in a sub-menu. You can nest as many as you like.
`items`: `object`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
items: {
// <select>
myItemWithSubmenu: {
name: "Textarea",
{
items {
mySubmenu {
name: "Command 1"
callback: function(key, opt){
alert("Clicked on " + key);
}
}
}
}
}
}
});
```
### accesskey
Character(s) to be used as accesskey.
Considering `a b c` $.contextMenu will first try to use »a« as the accesskey, if already taken, it'll fall through to »b«. Words are reduced to the first character, so »hello world« is treated as »h w«.
Note: Accesskeys are treated unique throughout one menu. This means an item in a sub-menu can't occupy the same accesskey as an item in the main menu.
`accesskey`: `string`
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
accesskey: 'a'
callback: function(itemKey, opt){
alert('I pressed a!');
}
});
```

View File

@ -0,0 +1,70 @@
---
currentMenu: plugin-commands
---
# Plugin commands
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Disable a contextMenu trigger](#disable-a-contextmenu-trigger)
- [Enable a contextMenu trigger](#enable-a-contextmenu-trigger)
- [Manually show a contextMenu](#manually-show-a-contextmenu)
- [Manually hide a contextMenu](#manually-hide-a-contextmenu)
- [Unregister all contextMenus](#unregister-all-contextmenus)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Disable a contextMenu trigger
disable contextMenu to be shown on specified trigger elements
```
$(".some-selector").contextMenu(false);
```
## Enable a contextMenu trigger
enable contextMenu to be shown on specified trigger elements
```
$(".some-selector").contextMenu(true);
```
## Manually show a contextMenu
show the contextMenu of the first element of the selector (position determined by determinePosition):
```
$(".some-selector").contextMenu();
$(".some-selector").contextMenu({x: 123, y: 123});
```
## Manually hide a contextMenu
hide the contextMenu of the first element of the selector:
```
$(".some-selector").contextMenu("hide");
Unregister contextMenu
```
To unregister / destroy a specific contextMenu:
```
$.contextMenu( 'destroy', selector );
```
selector expects the (string) selector that the contextMenu was registered to
## Unregister all contextMenus
To unregister / destroy all contextMenus:
```
$.contextMenu( 'destroy' );
```

View File

@ -0,0 +1,118 @@
---
currentMenu: runtime-options
---
# Runtime options (opt)
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [$node](#node)
- [$input](#input)
- [$label](#label)
- [$menu](#menu)
- [$trigger](#trigger)
- [callbacks](#callbacks)
- [commands](#commands)
- [inputs](#inputs)
- [hasTypes](#hastypes)
- [ns](#ns)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
The runtime options are passed to most callbacks on registration. This gives you the ability to access DOM elemnts and configuration dynamicly.
One way of using these in in the general [callback](#callback) when an item is clicked.
#### Example
```javascript
$.contextMenu({
selector: 'span.context-menu',
items : {
name: "textfield",
type: "text",
value: "welcome!"
},
callback: function(itemKey, opt){
// Alert the classes on the item that was clicked.
alert(opt.$node.attr('class'));
// Alert "welcome!"
alert(opt.inputs[itemsKey].$input.val());
}
});
```
### $selected
Reference to the `<li>` command element.
`$selected`: `jQuery element`
### $input
Reference to the `<input>` or `<select>` of the command element.
__Only available with [type](#type) "text", "textarea", "checkbox", "radio" and "select".__
`$input`: `jQuery element`
### $label
Reference to the `<label>` of the command element.
__Only available with [type](#type) "text", "textarea", "checkbox", "radio" and "select".__
`$label`: `jQuery element`
### $menu
Or the menu element of the contextmenu or the `<ul>` sub-menu element when called inside a submenu.
`$node`: `jQuery element`
### $trigger
The element triggering the menu.
`$trigger`: `jQuery element`
### callbacks
Registered [callbacks](#callback) of all commands (including those of sub-menus).
`callbacks`: `array`
### commands
Registered commands (including those of sub-menus).
`commands`: `array`
### inputs
Registered commands of input-type (including those of sub-menus).
Access a specific `<input>`: `opt.inputs[key].$input`
`inputs`: `jQuery element`
### hasTypes
flag denoting if the menu contains input elements.
`hasTypes`: `jQuery element`
### ns
The namespace (including leading dot) all events for this contextMenu instance were registered under.
`ns`: `string`

View File

@ -0,0 +1,55 @@
---
currentMenu: introduction
---
# [jQuery contextMenu](https://github.com/swisnl/jQuery-contextMenu)
## Contextmenu plugin & polyfill
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Features](#features)
- [Authors](#authors)
- [License](#license)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
The contextMenu Plugin was designed for web applications in need of menus on a possibly large amount of objects. Unlike implementations as [a beautiful site's](http://abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin/) or [trendskitchens'](http://www.trendskitchens.co.nz/jquery/contextmenu/) this contextMenu treats the menu as the primary object. That means, that a single menu is defined that can be used by multiple objects. Unlike the mentioned plugins, contextMenu doesn't need to bind itself to triggering objects. This allows injecting and removing triggers without having to re-initialize or update contextMenu.
![context menu rendered by $.contextMenu](screenshots/jquery-contextMenu.subs.png)
contextMenu can provide a simple list of clickable commands, or offer an in-menu form. This makes very simple attribute modification possible. See the [input example](demo/input.html).
Once a menu is registered, it cannot be altered. That means no commands can be added or removed from the menu. This allows contextMenu to keep a single definition in memory, which enables it to work with hundreds of trigger objects. contextMenu knows the two callbacks _show_ and _hide_ which can be used to update the state of commands within the menu. This allows en/disabling commands, changing icons or updating the values of contained `<input>` elements.
As of version 1.5 context menus can be created dynamically. That means the afore described behavior (once created, cannot be altered) still applies - but can be circumvented. Menus can be created on demand and they can be different depending on the triggering element.
## Features
* trigger contextMenu with right-click, [left-click](demo/trigger-left-click.html), [hover](demo/trigger-hover.html) or own [custom trigger](demo/trigger-custom.html) events
* delegated event handling removing the need for re-initialization when trigger objects are [added / removed](demo/dynamic.html)
* dynamic [on-demand](demo/dynamic-create.html) menu creation
* optional icons for commands
* [input elements](demo/input.html) (text, textarea, checkbox, radio, select) within the menu
* custom html elements (command free)
* show/hide callbacks to update the state of commands
* small memory footprint even with hundreds of trigger objects
* adjust position of menu to fit in viewport
* [enable / disable](demo/disabled-changing.html) commands
* nested [sub-menus](demo/sub-menus.html)
* full keyboard interaction
* [HTML5 `<menu>`](demo/html5-import.html) support
* CSS is for styling, javascript is not...
## Authors
* [Björn Brala (SWIS)](http://www.swis.nl/over-ons/bjorn-brala)
* [Rodney Rehm](http://rodneyrehm.de/en/)
* [Christian Baartse](https://github.com/christiaan) (single callback per menu)
* [Addy Osmani](https://github.com/addyosmani) (compatibility with native context menu in Firefox 8)
## License
$.contextMenu is published under the [MIT license](http://www.opensource.org/licenses/mit-license).

View File

@ -0,0 +1,23 @@
The MIT License (MIT)
Copyright (c) 2013 Dave Snider
Copyright (c) 2015 Matthieu Napoli
This project was forked of the work by Dave Sniper at https://github.com/snide/sphinx_rtd_theme
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,99 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [](#)
- [currentMenu: home ](#currentmenu-home)
- [Read The Docs template for Couscous](#read-the-docs-template-for-couscous)
- [Usage](#usage)
- [Configuration](#configuration)
- [Menu](#menu)
- [```markdown ](#markdown)
- [currentMenu: home ](#currentmenu-home-1)
- [TODO](#todo)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
---
currentMenu: home
---
# Read The Docs template for Couscous
[Read The Docs](https://readthedocs.org/) builds websites using a Sphinx theme. [That theme](https://github.com/snide/sphinx_rtd_theme) is open source and released under the MIT license.
This project is a port of the Sphinx theme to Couscous.
![](screenshot.png)
## Usage
To use the template, set it up in your `couscous.yml` configuration file:
```yaml
template:
url: https://github.com/CouscousPHP/Template-ReadTheDocs
```
## Configuration
Here are all the variables you can set in your `couscous.yml`:
```yaml
# Base URL of the published website
baseUrl: http://username.github.io/project
# Used to link to the GitHub project
github:
user: myself
repo: my-project
title: My project
subTitle: This is a great project.
# The left menu bar
menu:
items:
home:
text: FAQ
# You can use relative urls
relativeUrl: doc/faq.html
foo:
text: Another link
# Or absolute urls
absoluteUrl: https://example.com
```
Note that the menu items can also contain HTML:
```yaml
home:
text: "<i class=\"fa fa-github\"></i> FAQ"
relativeUrl: doc/faq.html
```
## Menu
To set the current menu item (i.e. highlighted menu item), set the `currentMenu`
key in the Markdown files:
```markdown
---
currentMenu: home
---
# Welcome
```
## TODO
Want to help?
The original template came with a lot of SASS files and features. Some features are not ported to this Couscous template (e.g. the search).
What would be good to do:
- find a way to cleanly handle the SASS files and the `theme.css` (which contains the generated/minified CSS) which right now are duplicates. Relying on SASS wouldn't be a good idea though since it would be end-users have to install SASS.
- clean up unused CSS and SASS style (e.g. search bar, …)
In the meantime, the original minified `theme.css` is used and it works just great.

View File

@ -0,0 +1,27 @@
template:
directory: .
github:
user: CouscousPHP
repo: Template-ReadTheDocs
title: ReadTheDocs template
subTitle: A template based on readthedocs.org
# The left menu bar
menu:
items:
home:
text: Home page
# You can use relative urls
relativeUrl:
getting-started:
text: Getting Started
relativeUrl:
faq:
text: FAQ
relativeUrl:
couscous:
text: Couscous.io
# Or absolute urls
absoluteUrl: http://couscous.io

View File

@ -0,0 +1,172 @@
html .icon {
display:block;
}
.rst-content ul {
margin-bottom:24px;
}
.rst-content ul li {
line-height:24px;
}
h3 {
color:#2980B9;
}
h4,h5,h6 {
color:#195176;
}
.maintained-by-swis {
float:right;
margin-right:0;
}
.edit-on-github {
float:right;
/*margin-right:20px;*/
}
body .wy-side-nav-search > a {
padding-left:0;
}
body .wy-side-nav-search {
background-color: #1C7F99;
text-align: left;
padding:0.4045em 1.618em;
}
.clear {
clear:both;
}
.wy-table-responsive table.docutils {
max-width: 695px;
}
.swis-branding {
display: block;
position: fixed;
left:0;
bottom:0;
color:#b3b3b3;
font-size:14px;
width:300px;
padding:10px;
background:#343131;
}
div.swis-branding a:hover {
background:none;
text-decoration: underline;
}
div.swis-branding a {
display: block;
line-height: 46px;
margin: 5px 0 -10px;
text-align: left;
padding:0;
}
div.swis-branding .swis-logo {
height:38px;
width:70px;
float:left;
clear:left;
margin-right:10px;
}
html body {
padding-bottom:150px;
}
/*****************
******************
* HTML Element stijlen
*
* Vergeet deze niet over te nemen in editor.css (body ==> #tinymce)
*****************/
@font-face {
/* font-family: 'proxima_nova_rgregular';*/
font-family: 'Proxima Nova';
src: url('../fonts/ProximaNova-Reg-webfont.eot');
src: local('☺'),
url('../fonts/ProximaNova-Reg-webfont.svg#proxima_nova_rgregular') format('svg'),
url('../fonts/ProximaNova-Reg-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/ProximaNova-Reg-webfont.woff') format('woff'),
url('../fonts/ProximaNova-Reg-webfont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
/*font-family: 'proxima_nova_ltsemibold';*/
font-family: 'Proxima Nova';
src: url('../fonts/ProximaNova-Sbold-webfont.eot');
src: local('☺'),
url('../fonts/ProximaNova-Sbold-webfont.svg#proxima_nova_ltsemibold') format('svg'),
url('../fonts/ProximaNova-Sbold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/ProximaNova-Sbold-webfont.woff') format('woff'),
url('../fonts/ProximaNova-Sbold-webfont.ttf') format('truetype');
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: 'Proxima Nova Bold';
src: url('../fonts/oud/proximanova-bold.eot.eot');
src: local('☺'),
url('../fonts/oud/proximanova-bold.svg#proxima_nova_ltbold') format('svg'),
url('../fonts/oud/proximanova-bold.eot?#iefix') format('embedded-opentype'),
url('../fonts/oud/proximanova-bold.woff') format('woff'),
url('../fonts/oud/proximanova-bold.ttf.ttf') format('truetype');
font-weight: bold;
font-style: normal;
}
/**
* @license
* MyFonts Webfont Build ID 2970176, 2015-02-11T06:20:04-0500
*
* The fonts listed in this notice are subject to the End User License
* Agreement(s) entered into by the website owner. All other parties are
* explicitly restricted from using the Licensed Webfonts(s).
*
* You may obtain a valid license at the URLs below.
*
* Webfont: ProximaNovaA-Light by Mark Simonson
* URL: http://www.myfonts.com/fonts/marksimonson/proxima-nova/a-light/
*
* Webfont: ProximaNovaS-Light by Mark Simonson
* URL: http://www.myfonts.com/fonts/marksimonson/proxima-nova/s-light/
*
* Webfont: ProximaNova-Light by Mark Simonson
* URL: http://www.myfonts.com/fonts/marksimonson/proxima-nova/light/
*
*
* License: http://www.myfonts.com/viewlicense?type=web&buildid=2970176
* Licensed pageviews: 1,000,000
* Webfonts copyright: Copyright (c) Mark Simonson, 2005. All rights reserved.
*
* © 2015 MyFonts Inc
*/
/* @import must be at top of file, otherwise CSS will not work */
@import url("//hello.myfonts.net/count/2d5240");
@font-face {
font-family: 'ProximaNova-Light';
src: url('../fonts/2D5240_2_0.eot');
src: url('../fonts/2D5240_2_0.eot?#iefix') format('embedded-opentype'),
url('../fonts/2D5240_2_0.woff2') format('woff2'),
url('../fonts/2D5240_2_0.woff') format('woff'),
url('../fonts/2D5240_2_0.ttf') format('truetype');
font-weight: 100;
font-style: normal;
}

View File

@ -0,0 +1,24 @@
.wy-side-nav-search>a, .wy-side-nav-search .wy-dropdown>a {
margin-bottom: 0;
}
/* Code blocks */
pre > code {
display: block;
font-size: 12px;
white-space: inherit;
max-width: inherit;
background: transparent;
border: none;
overflow-x: auto;
padding: 0.5em;
color: #333;
}
pre > code.hljs {
background: transparent;
}
pre {
border: 1px solid #e1e4e5;
background: #fff;
margin: 1px 0 24px 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,129 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
<link href='https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic|Roboto+Slab:400,700|Inconsolata:400,700&subset=latin,cyrillic'
rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{{ baseUrl }}/css/screen.css" type="text/css"/>
<link rel="stylesheet" href="{{ baseUrl }}/css/theme.css" type="text/css"/>
<link rel="stylesheet" href="{{ baseUrl }}/css/theme-fixes.css" type="text/css"/>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/styles/github.min.css">
<link href="{{ baseUrl }}/dist/jquery.contextMenu.css" rel="stylesheet" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="{{ baseUrl }}/dist/jquery.contextMenu.js" type="text/javascript"></script>
<script src="{{ baseUrl }}/dist/jquery.ui.position.min.js" type="text/javascript"></script>
<script src="{{ baseUrl }}/js/main.js" type="text/javascript"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-66438984-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="{{ baseUrl }}/"> {{ title|default('The title') }}</a>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
{% for itemId, item in menu.items %}
<li class="toctree-l1 {{ itemId == currentMenu or ( item.items is defined and currentMenu in item.items|keys ) ? 'current' }}">
<a class="reference internal {{ itemId == currentMenu ? 'current' }}"
href="{{ item.absoluteUrl|default(baseUrl ~ '/' ~ item.relativeUrl) }}">
{{ item.text|raw }}
</a>
{% if item.items is defined %}
<ul>
{% for subItemId, subItem in item.items %}
<li class="toctree-l2 {{ subItemId == currentMenu ? 'current' }}">
<a class="reference internal {{ subItemId == currentMenu ? 'current' }}"
href="{{ subItem.absoluteUrl|default(baseUrl ~ '/' ~ subItem.relativeUrl) }}">
{{ subItem.text|raw }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
<div class="swis-branding">
<span>Maintained by:</span>
<a href="https://www.swis.nl"><img src="{{ baseUrl }}/images/swis-logo.jpg" class="swis-logo">Creative Digital Agency</a>
</div>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
{# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="{{ baseUrl }}/">{{ title|default('The title') }}</a>
</nav>
{# PAGE CONTENT #}
<div class="wy-nav-content">
<div class="rst-content">
<div role="main" class="document">
{#<a href="https://github.com/swisnl/jQuery-contextMenu" class="edit-on-github maintained-by-swis fa fa-home"> Maintained by SWIS</a>#}
<a href="https://github.com/swisnl/jQuery-contextMenu" class="edit-on-github fa fa-github"> Fork on GitHub</a>
{{ content|raw }}
</div>
<footer>
<hr/>
{% if not github is empty %}
<div role="contentinfo">
<p>
Find {{ title }} on <a href="https://github.com/{{ github.user }}/{{ github.repo }}">GitHub</a>.
</p>
</div>
{% endif %}
</footer>
</div>
</div>
</section>
</div>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/highlight.min.js"></script>
<script src="{{ baseUrl }}/js/theme.js"></script>
<script>
$(function() {
hljs.configure({
tabReplace: ' ', // 4 spaces
});
hljs.initHighlightingOnLoad();
});
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 407 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 399 KiB

View File

@ -0,0 +1,555 @@
<?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="proxima_nova_rgregular" horiz-adv-x="572" >
<font-face units-per-em="1000" ascent="790" descent="-210" />
<missing-glyph horiz-adv-x="258" />
<glyph unicode="&#xfb01;" horiz-adv-x="509" d="M16 417v66h80v37q0 74 38 115.5t102 41.5q46 0 73 -17l-19 -57q-19 12 -43 12q-37 0 -56.5 -24.5t-19.5 -70.5v-37h98v-66h-98v-417h-75v417h-80zM345 602q0 21 15 36t35 15q21 0 36 -15t15 -36t-15 -35.5t-36 -14.5q-20 0 -35 14.5t-15 35.5zM358 0v483h75v-483h-75z " />
<glyph unicode="&#xfb02;" horiz-adv-x="509" d="M16 417v66h80v37q0 74 38 115.5t102 41.5q46 0 73 -17l-19 -57q-19 12 -43 12q-37 0 -56.5 -24.5t-19.5 -70.5v-37h98v-66h-98v-417h-75v417h-80zM358 0v667h75v-667h-75z" />
<glyph unicode="&#xfb03;" horiz-adv-x="792" d="M16 417v66h80v37q0 74 37.5 115.5t102.5 41.5q62 0 102 -37l-31 -49q-27 24 -60 24q-37 0 -56.5 -24.5t-19.5 -70.5v-37h98v-66h-98v-417h-75v417h-80zM299 417v66h80v37q0 74 38 115.5t102 41.5q46 0 73 -17l-19 -57q-19 12 -43 12q-37 0 -56.5 -24.5t-19.5 -70.5v-37 h98v-66h-98v-417h-75v417h-80zM629 602q0 21 15 36t35 15q21 0 36 -15t15 -36t-15 -35.5t-36 -14.5q-20 0 -35 14.5t-15 35.5zM642 0v483h75v-483h-75z" />
<glyph unicode="&#xfb04;" horiz-adv-x="792" d="M16 417v66h80v37q0 74 37.5 115.5t102.5 41.5q62 0 102 -37l-31 -49q-27 24 -60 24q-37 0 -56.5 -24.5t-19.5 -70.5v-37h98v-66h-98v-417h-75v417h-80zM299 417v66h80v37q0 74 38 115.5t102 41.5q46 0 73 -17l-19 -57q-19 12 -43 12q-37 0 -56.5 -24.5t-19.5 -70.5v-37 h98v-66h-98v-417h-75v417h-80zM642 0v667h75v-667h-75z" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="333" />
<glyph unicode="&#xd;" horiz-adv-x="0" />
<glyph unicode=" " horiz-adv-x="258" />
<glyph unicode="&#x09;" horiz-adv-x="258" />
<glyph unicode="&#xa0;" horiz-adv-x="258" />
<glyph unicode="!" horiz-adv-x="230" d="M60 45q0 23 16 39t39 16t39 -16t16 -39q0 -22 -16.5 -38.5t-38.5 -16.5t-38.5 16.5t-16.5 38.5zM68 667h94l-16 -480h-62z" />
<glyph unicode="&#x22;" horiz-adv-x="343" d="M54 631q0 19 13 32.5t32 13.5t32.5 -13.5t13.5 -32.5l-27 -219h-37q-27 205 -27 219zM199 631q0 19 13.5 32.5t32.5 13.5t32 -13.5t13 -32.5l-27 -219h-37q-27 205 -27 219z" />
<glyph unicode="#" horiz-adv-x="590" d="M22 181l17 53h107l66 199h-108l16 52h110l60 182h62l-60 -182h110l60 182h61l-61 -182h107l-15 -52h-109l-67 -199h111l-16 -53h-113l-60 -181h-61l61 181h-111l-60 -181h-62l61 181h-106zM207 234h110l66 199h-110z" />
<glyph unicode="$" horiz-adv-x="593" d="M42 94l49 63q73 -82 180 -94v244q-38 10 -61.5 18t-54.5 23.5t-49 33.5t-30.5 46t-12.5 64q0 77 58 128t150 56v92h61v-93q121 -12 197 -91l-50 -61q-59 63 -147 76v-217q47 -13 78 -25.5t65.5 -35t51.5 -57t17 -80.5q0 -76 -52 -131.5t-160 -63.5v-89h-61v89 q-144 8 -229 105zM149 497q0 -38 31 -59.5t91 -39.5v204q-54 -4 -88 -32.5t-34 -72.5zM332 63q65 7 95.5 40t30.5 74q0 45 -32.5 70t-93.5 43v-227z" />
<glyph unicode="%" horiz-adv-x="731" d="M31 511q0 71 45 118.5t115 47.5q71 0 116.5 -47.5t45.5 -118.5q0 -70 -45.5 -116.5t-116.5 -46.5t-115.5 46.5t-44.5 116.5zM91 511q0 -48 28 -80.5t72 -32.5t73 32.5t29 80.5q0 50 -28.5 82.5t-73.5 32.5q-44 0 -72 -32.5t-28 -82.5zM128 0l426 667h55l-427 -667h-54z M379 151q0 71 45 118.5t115 47.5q71 0 116 -47.5t45 -118.5q0 -70 -45 -116.5t-116 -46.5t-115.5 46.5t-44.5 116.5zM438 151q0 -48 28.5 -80.5t72.5 -32.5t73 32.5t29 80.5q0 50 -28.5 82.5t-73.5 32.5t-73 -32.5t-28 -82.5z" />
<glyph unicode="&#x26;" horiz-adv-x="641" d="M36 174q0 71 39 116t108 82q-51 87 -51 150q0 66 48.5 110.5t119.5 44.5q67 0 109 -34.5t42 -96.5q0 -36 -13 -64.5t-42 -52t-50.5 -36.5t-64.5 -35q32 -44 77 -95q36 -43 79 -89q44 65 72 152l65 -28q-49 -114 -91 -172q50 -52 130 -126h-104q-30 26 -73 70 q-82 -82 -192 -82q-91 0 -149.5 48.5t-58.5 137.5zM117 179q0 -60 39.5 -94.5t94.5 -34.5q74 0 140 66q-66 69 -92 101q-46 53 -84 106q-47 -29 -72.5 -62.5t-25.5 -81.5zM210 521q0 -47 40 -115q65 32 98.5 62t33.5 75q0 36 -22 55.5t-57 19.5q-39 0 -66 -27.5t-27 -69.5z " />
<glyph unicode="'" horiz-adv-x="199" d="M54 631q0 19 13 32.5t32 13.5t32.5 -13.5t13.5 -32.5l-27 -219h-37q-27 205 -27 219z" />
<glyph unicode="(" horiz-adv-x="248" d="M44 243q0 248 141 442l45 -34q-53 -105 -78.5 -198t-25.5 -210t25.5 -210.5t78.5 -196.5l-45 -35q-141 193 -141 442z" />
<glyph unicode=")" horiz-adv-x="248" d="M17 -164q53 103 79 196.5t26 210.5q0 118 -26 211t-79 197l45 34q142 -193 142 -442q0 -250 -142 -442z" />
<glyph unicode="*" horiz-adv-x="340" d="M34 481l102 52l-102 52l22 39l96 -62l-5 115h46l-6 -115l96 62l23 -39l-102 -52l102 -52l-23 -40l-96 63l6 -115h-46l5 115l-96 -63z" />
<glyph unicode="+" horiz-adv-x="499" d="M29 311v52h192v207h57v-207h192v-52h-192v-213h-57v213h-192z" />
<glyph unicode="," horiz-adv-x="230" d="M57 -96q25 16 43.5 42.5t21.5 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5q0 -44 -23 -84.5t-59 -66.5z" />
<glyph unicode="-" horiz-adv-x="300" d="M30 209v66h240v-66h-240z" />
<glyph unicode="." horiz-adv-x="230" d="M60 45q0 23 16 39t39 16t39 -16t16 -39t-16 -39t-39 -16t-39 16t-16 39z" />
<glyph unicode="/" horiz-adv-x="296" d="M0 -20l237 707h59l-237 -707h-59z" />
<glyph unicode="0" horiz-adv-x="612" d="M51 333q0 64 14.5 123t44 109.5t80 81t116.5 30.5q65 0 116 -30.5t80.5 -81t44 -109.5t14.5 -123t-14.5 -123t-44 -110t-80.5 -81.5t-116 -30.5q-66 0 -116.5 30.5t-80 81.5t-44 110t-14.5 123zM136 333q0 -72 15 -130t55 -99.5t100 -41.5t100 41.5t55 99.5t15 130 t-15 130t-55 99t-100 41t-100 -41t-55 -99t-15 -130z" />
<glyph unicode="1" horiz-adv-x="339" d="M21 495l167 172h73v-667h-83v557l-107 -113z" />
<glyph unicode="2" horiz-adv-x="588" d="M53 572q38 50 99.5 77.5t132.5 27.5q91 0 157.5 -51t66.5 -145q0 -93 -80 -185.5t-244 -221.5h327v-74h-458v66q104 82 161.5 130.5t111 103t75.5 97t22 84.5q0 60 -41 91t-98 31q-115 0 -181 -84z" />
<glyph unicode="3" horiz-adv-x="557" d="M29 98l49 52q30 -40 79 -64t107 -24q73 0 114.5 33.5t41.5 91.5q0 60 -44.5 89t-121.5 29q-59 0 -69 -1v76q11 -1 69 -1q68 0 111.5 27.5t43.5 82.5q0 53 -42.5 83.5t-106.5 30.5q-101 0 -176 -81l-46 52q85 103 228 103q99 0 162.5 -47.5t63.5 -130.5q0 -66 -44 -105.5 t-100 -49.5q55 -5 104.5 -48t49.5 -116q0 -85 -64 -138.5t-172 -53.5q-80 0 -142 31t-95 79z" />
<glyph unicode="4" horiz-adv-x="558" d="M32 169v69l286 429h114v-425h94v-73h-94v-169h-83v169h-317zM115 242h234v348z" />
<glyph unicode="5" horiz-adv-x="590" d="M66 95l51 55q69 -88 184 -88q68 0 111 41t43 102q0 65 -42.5 104.5t-110.5 39.5q-90 0 -154 -63l-61 21v360h408v-74h-325v-232q60 60 156 60q88 0 150 -57.5t62 -155.5q0 -100 -67 -160t-170 -60q-154 0 -235 107z" />
<glyph unicode="6" horiz-adv-x="591" d="M51 332q0 94 28 170t90.5 125.5t152.5 49.5q115 0 185 -80l-42 -62q-58 68 -143 68q-62 0 -105.5 -39t-63 -96.5t-19.5 -126.5q0 -17 1 -26q25 40 77.5 72t111.5 32q95 0 156.5 -55.5t61.5 -157.5q0 -91 -64 -154.5t-170 -63.5q-67 0 -118 28t-80.5 76.5t-44 109 t-14.5 130.5zM137 247q7 -74 48 -129.5t120 -55.5q72 0 112.5 43.5t40.5 97.5q0 70 -43 107t-111 37q-49 0 -94 -27.5t-73 -72.5z" />
<glyph unicode="7" horiz-adv-x="515" d="M31 593v74h455v-57l-273 -610h-92l269 593h-359z" />
<glyph unicode="8" horiz-adv-x="581" d="M52 169q0 63 45.5 109t113.5 66q-64 18 -106 58.5t-42 101.5q0 84 68 128.5t160 44.5t160.5 -44.5t68.5 -128.5q0 -61 -42 -101.5t-107 -58.5q68 -20 113.5 -66t45.5 -109q0 -82 -68.5 -131.5t-170.5 -49.5t-170.5 49t-68.5 132zM135 178q0 -52 45.5 -84t110.5 -32 q64 0 109.5 32t45.5 84q0 40 -31.5 70.5t-64 43t-59.5 15.5q-27 -3 -59.5 -15.5t-64.5 -43t-32 -70.5zM146 493q0 -28 16 -50.5t42 -35t46.5 -19t40.5 -10.5q20 3 40.5 10t46.5 19.5t42 35t16 50.5q0 50 -41.5 80t-103.5 30q-63 0 -104 -30t-41 -80z" />
<glyph unicode="9" horiz-adv-x="591" d="M49 460q0 90 64 154t169 64q68 0 119 -28t80.5 -77t44 -109t14.5 -131q0 -94 -28 -169.5t-90.5 -125t-152.5 -49.5q-115 0 -185 80l42 62q58 -68 143 -68q64 0 108 40t62 97t18 124q0 18 -1 27q-25 -40 -77 -72t-111 -32q-95 0 -157 55.5t-62 157.5zM133 463 q0 -70 43 -107t111 -37q49 0 94.5 27t71.5 72q-6 74 -47 130t-120 56q-71 0 -112 -44t-41 -97z" />
<glyph unicode=":" horiz-adv-x="230" d="M60 45q0 23 16 39t39 16t39 -16t16 -39t-16 -39t-39 -16t-39 16t-16 39zM60 435q0 23 16 39t39 16t39 -16t16 -39t-16 -39t-39 -16t-39 16t-16 39z" />
<glyph unicode=";" horiz-adv-x="230" d="M57 -95q24 16 43 43t22 51q-6 -3 -14 -3q-21 0 -34.5 14.5t-13.5 36.5q0 23 15.5 39t37.5 16q26 0 44.5 -20.5t18.5 -55.5q0 -45 -23 -85.5t-59 -65.5zM60 435q0 23 16 39t39 16t39 -16t16 -39q0 -22 -16.5 -38.5t-38.5 -16.5t-38.5 16.5t-16.5 38.5z" />
<glyph unicode="&#x3c;" horiz-adv-x="499" d="M29 308v53l441 219v-63l-377 -183l377 -182v-62z" />
<glyph unicode="=" horiz-adv-x="499" d="M29 211v52h441v-52h-441zM29 404v53h441v-53h-441z" />
<glyph unicode="&#x3e;" horiz-adv-x="499" d="M29 90v62l376 182l-376 183v63l441 -219v-53z" />
<glyph unicode="?" horiz-adv-x="462" d="M18 575q79 102 217 102q89 0 142.5 -44.5t53.5 -110.5q0 -51 -30.5 -90.5t-66.5 -60.5t-66.5 -50t-30.5 -61q0 -28 27 -49l-61 -26q-39 33 -39 81q0 30 13.5 55t33.5 41t43.5 33.5t43.5 32.5t33.5 36t13.5 46q0 40 -30.5 66.5t-87.5 26.5q-97 0 -159 -82zM169 45 q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39t-16.5 -39t-38.5 -16t-38.5 16t-16.5 39z" />
<glyph unicode="@" horiz-adv-x="783" d="M35 244q0 160 119.5 277t277.5 117q139 0 227 -91.5t88 -225.5q0 -111 -52 -173.5t-121 -62.5q-40 0 -64.5 23.5t-26.5 57.5l-1 6q-27 -38 -69.5 -62.5t-88.5 -24.5q-69 0 -111 45t-42 118q0 102 72 176.5t163 74.5q46 0 79.5 -22t48.5 -56l13 62h68l-57 -271 q-2 -12 -2 -21q0 -25 13.5 -38.5t33.5 -13.5q38 0 73 45t35 137q0 124 -78.5 203.5t-204.5 79.5q-144 0 -251.5 -108.5t-107.5 -249.5q0 -121 81.5 -202t205.5 -81q97 0 186 56l18 -26q-98 -63 -208 -63q-136 0 -226.5 90.5t-90.5 223.5zM242 252q0 -49 27.5 -80t74.5 -31 q87 0 149 90l29 138q-10 29 -36.5 51.5t-66.5 22.5q-73 0 -125 -58.5t-52 -132.5z" />
<glyph unicode="A" horiz-adv-x="658" d="M9 0l268 667h103l269 -667h-95l-59 148h-332l-59 -148h-95zM187 222h283l-141 359z" />
<glyph unicode="B" horiz-adv-x="629" d="M78 0v667h297q86 0 136.5 -47t50.5 -123q0 -60 -34 -101.5t-83 -51.5q53 -8 91.5 -56t38.5 -108q0 -81 -51.5 -130.5t-141.5 -49.5h-304zM161 74h204q58 0 91 31t33 84q0 49 -32.5 82t-91.5 33h-204v-230zM161 378h200q55 0 85 30t30 77t-30.5 77.5t-84.5 30.5h-200v-215 z" />
<glyph unicode="C" horiz-adv-x="676" d="M51 333q0 152 98.5 248.5t244.5 96.5q160 0 253 -132l-70 -39q-29 43 -78 70t-105 27q-110 0 -183.5 -76.5t-73.5 -194.5t73.5 -194.5t183.5 -76.5q56 0 105 26.5t78 70.5l71 -39q-97 -132 -254 -132q-146 0 -244.5 96.5t-98.5 248.5z" />
<glyph unicode="D" horiz-adv-x="700" d="M78 0v667h228q153 0 247.5 -95t94.5 -239q0 -145 -94.5 -239t-247.5 -94h-228zM161 74h145q118 0 187 74t69 185q0 112 -68 186t-188 74h-145v-519z" />
<glyph unicode="E" horiz-adv-x="569" d="M78 0v667h437v-74h-354v-215h347v-74h-347v-230h354v-74h-437z" />
<glyph unicode="F" horiz-adv-x="550" d="M78 0v667h437v-74h-354v-215h347v-74h-347v-304h-83z" />
<glyph unicode="G" horiz-adv-x="713" d="M51 333q0 153 99 249t244 96q158 0 259 -125l-66 -41q-32 42 -83.5 67t-109.5 25q-110 0 -183.5 -76.5t-73.5 -194.5t73.5 -195t183.5 -77q55 0 102.5 21.5t76.5 50.5v136h-229v74h312v-241q-103 -115 -262 -115q-145 0 -244 96.5t-99 249.5z" />
<glyph unicode="H" horiz-adv-x="712" d="M78 0v667h83v-287h390v287h83v-667h-83v306h-390v-306h-83z" />
<glyph unicode="I" horiz-adv-x="239" d="M78 0v667h83v-667h-83z" />
<glyph unicode="J" horiz-adv-x="475" d="M11 65l43 63q55 -66 126 -66q61 0 97.5 38.5t36.5 101.5v465h83v-466q0 -104 -59 -158.5t-153 -54.5q-108 0 -174 77z" />
<glyph unicode="K" horiz-adv-x="601" d="M78 0v667h83v-345l295 345h104l-278 -317l302 -350h-103l-253 300l-67 -76v-224h-83z" />
<glyph unicode="L" horiz-adv-x="510" d="M78 0v667h83v-593h310v-74h-393z" />
<glyph unicode="M" horiz-adv-x="809" d="M78 0v667h119l207 -502l208 502h119v-667h-83v549l-227 -549h-34l-226 549v-549h-83z" />
<glyph unicode="N" horiz-adv-x="708" d="M78 0v667h85l384 -521v521h83v-667h-80l-389 532v-532h-83z" />
<glyph unicode="O" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98q-147 0 -239 98t-92 247zM137 333q0 -118 67 -194.5t178 -76.5q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195z" />
<glyph unicode="P" horiz-adv-x="587" d="M78 0v667h268q97 0 153 -58t56 -143t-56.5 -143t-152.5 -58h-185v-265h-83zM161 339h175q59 0 96 35.5t37 91.5t-37 91.5t-96 35.5h-175v-254z" />
<glyph unicode="Q" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q146 0 238.5 -98t92.5 -247t-92 -246l64 -68l-58 -50l-65 69q-78 -50 -180 -50q-147 0 -239 98t-92 247zM137 333q0 -118 67 -194.5t178 -76.5q71 0 127 34l-95 103l58 49l94 -102q61 75 61 187q0 119 -67.5 195t-177.5 76q-111 0 -178 -76 t-67 -195z" />
<glyph unicode="R" horiz-adv-x="608" d="M78 0v667h268q93 0 151 -55t58 -146q0 -86 -50 -137t-123 -57l180 -272h-98l-170 265h-133v-265h-83zM161 338h175q59 0 96 36t37 92t-37 91.5t-96 35.5h-175v-255z" />
<glyph unicode="S" horiz-adv-x="586" d="M38 94l49 63q85 -95 210 -95q81 0 119 34.5t38 80.5q0 35 -22 59t-56.5 37.5t-77 24.5t-84.5 24.5t-76.5 32.5t-56.5 54t-22 83q0 82 65 133.5t164 51.5q149 0 237 -93l-50 -61q-73 80 -193 80q-60 0 -98.5 -29.5t-38.5 -76.5q0 -35 29.5 -58t73 -34t95 -27.5t95 -35 t73 -59.5t29.5 -99q0 -82 -60.5 -139t-185.5 -57q-162 0 -256 106z" />
<glyph unicode="T" horiz-adv-x="570" d="M32 593v74h506v-74h-212v-593h-83v593h-211z" />
<glyph unicode="U" horiz-adv-x="700" d="M78 259v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5t-202.5 72.5t-69.5 198.5z" />
<glyph unicode="V" horiz-adv-x="658" d="M9 667h95l225 -576l225 576h95l-269 -667h-103z" />
<glyph unicode="W" horiz-adv-x="883" d="M14 667h92l148 -556l153 556h69l153 -556l147 556h92l-190 -667h-90l-147 538l-147 -538h-90z" />
<glyph unicode="X" horiz-adv-x="652" d="M12 0l260 342l-245 325h101l198 -267l197 267h101l-244 -324l259 -343h-100l-213 284l-213 -284h-101z" />
<glyph unicode="Y" horiz-adv-x="626" d="M9 667h97l207 -310l207 310h97l-262 -385v-282h-83v282z" />
<glyph unicode="Z" horiz-adv-x="585" d="M48 0v69l375 524h-375v74h481v-69l-375 -524h382v-74h-488z" />
<glyph unicode="[" horiz-adv-x="243" d="M40 -190v868h186v-55h-128v-758h128v-55h-186z" />
<glyph unicode="\" horiz-adv-x="296" d="M0 687h59l237 -707h-59z" />
<glyph unicode="]" horiz-adv-x="243" d="M17 -135h128v758h-128v55h186v-868h-186v55z" />
<glyph unicode="^" horiz-adv-x="432" d="M19 333l169 334h57l168 -334h-62l-135 279l-135 -279h-62z" />
<glyph unicode="_" horiz-adv-x="564" d="M-3 -40h570v-55h-570v55z" />
<glyph unicode="`" horiz-adv-x="226" d="M0 700h78l148 -144h-57z" />
<glyph unicode="a" horiz-adv-x="527" d="M48 148q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117zM125 147q0 -46 33.5 -75.5t85.5 -29.5q90 0 133 60v91q-43 60 -133 60 q-52 0 -85.5 -29.5t-33.5 -76.5z" />
<glyph unicode="b" horiz-adv-x="575" d="M75 0v667h75v-257q63 85 163 85q95 0 155 -69.5t60 -184.5q0 -116 -59.5 -184.5t-155.5 -68.5q-101 0 -163 84v-72h-75zM150 131q20 -32 60.5 -54t83.5 -22q72 0 114 52t42 134t-42 134.5t-114 52.5q-43 0 -83.5 -22.5t-60.5 -55.5v-219z" />
<glyph unicode="c" horiz-adv-x="495" d="M47 242q0 109 67 181t174 72q112 0 177 -84l-50 -46q-46 63 -123 63q-76 0 -121.5 -52t-45.5 -134t45.5 -134.5t121.5 -52.5t123 63l50 -46q-65 -84 -177 -84q-107 0 -174 72.5t-67 181.5z" />
<glyph unicode="d" horiz-adv-x="575" d="M47 241q0 115 59.5 184.5t155.5 69.5q100 0 163 -85v257h75v-667h-75v72q-62 -84 -163 -84q-96 0 -155.5 68.5t-59.5 184.5zM125 241q0 -82 42 -134t113 -52q44 0 84 22t61 54v219q-21 33 -61.5 55.5t-83.5 22.5q-71 0 -113 -52.5t-42 -134.5z" />
<glyph unicode="e" horiz-adv-x="563" d="M47 242q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74q-108 0 -177 70.5t-69 183.5zM126 272h317q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112z" />
<glyph unicode="f" horiz-adv-x="283" d="M16 417v66h80v37q0 74 37.5 115.5t102.5 41.5q62 0 102 -37l-31 -49q-27 24 -60 24q-37 0 -56.5 -24.5t-19.5 -70.5v-37h98v-66h-98v-417h-75v417h-80z" />
<glyph unicode="g" horiz-adv-x="574" d="M47 244q0 115 59.5 183t155.5 68q99 0 162 -85v73h75v-469q0 -111 -65 -160.5t-165 -49.5q-64 0 -109 15.5t-86 56.5l38 56q55 -66 157 -66q67 0 111 35.5t44 109.5v69q-27 -38 -70 -62t-92 -24q-96 0 -155.5 67.5t-59.5 182.5zM125 244q0 -81 42 -132.5t113 -51.5 q43 0 83.5 23t60.5 56v211q-20 33 -60 55.5t-84 22.5q-72 0 -113.5 -51t-41.5 -133z" />
<glyph unicode="h" horiz-adv-x="552" d="M75 0v667h75v-254q28 33 75 57.5t98 24.5q154 0 154 -154v-341h-75v318q0 60 -28 85t-81 25q-41 0 -80.5 -22t-62.5 -53v-353h-75z" />
<glyph unicode="i" horiz-adv-x="225" d="M62 602q0 21 15 36t35 15q21 0 36 -15t15 -36t-15 -35.5t-36 -14.5q-20 0 -35 14.5t-15 35.5zM75 0v483h75v-483h-75z" />
<glyph unicode="j" horiz-adv-x="225" d="M-99 -160l27 57q31 -31 69 -31q36 0 57 21.5t21 65.5v530h75v-530q0 -71 -37 -110t-106 -39q-59 0 -106 36zM62 602q0 21 15 36t35 15q21 0 36 -15t15 -36t-15 -35.5t-36 -14.5q-20 0 -35 14.5t-15 35.5z" />
<glyph unicode="k" horiz-adv-x="514" d="M75 0v667h75v-441l254 257h95l-214 -219l215 -264h-96l-174 217l-80 -79v-138h-75z" />
<glyph unicode="l" horiz-adv-x="225" d="M75 0v667h75v-667h-75z" />
<glyph unicode="m" horiz-adv-x="808" d="M75 0v483h75v-70q18 28 63 55t93 27q53 0 86 -25t44 -65q22 36 67 63t95 27q135 0 135 -146v-349h-75v328q0 100 -89 100q-36 0 -72 -22t-56 -52v-354h-75v328q0 100 -89 100q-35 0 -70.5 -22t-56.5 -53v-353h-75z" />
<glyph unicode="n" horiz-adv-x="551" d="M75 0v483h75v-70q28 33 75 57.5t97 24.5q154 0 154 -156v-339h-75v316q0 61 -28 86.5t-80 25.5q-42 0 -81.5 -22t-61.5 -53v-353h-75z" />
<glyph unicode="o" d="M47 242q0 108 65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73t-173.5 73t-65.5 181zM125 242q0 -78 43.5 -132.5t117.5 -54.5t117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5z" />
<glyph unicode="p" d="M75 -184v667h75v-72q27 38 70 61t93 23q96 0 155.5 -68.5t59.5 -184.5t-59.5 -185t-155.5 -69q-102 0 -163 85v-257h-75zM150 133q20 -33 60.5 -55.5t83.5 -22.5q71 0 113 52.5t42 134.5t-42 134t-113 52q-43 0 -83.5 -22.5t-60.5 -54.5v-218z" />
<glyph unicode="q" d="M44 242q0 116 59.5 184.5t155.5 68.5q50 0 93 -23t69 -61v72h75v-667h-75v257q-61 -85 -162 -85q-96 0 -155.5 69t-59.5 185zM123 242q0 -82 41.5 -134.5t112.5 -52.5q44 0 84.5 22.5t59.5 55.5v218q-19 32 -59.5 54.5t-84.5 22.5q-71 0 -112.5 -52t-41.5 -134z" />
<glyph unicode="r" horiz-adv-x="330" d="M75 0v483h75v-78q67 88 161 88v-77q-14 3 -30 3q-34 0 -74 -24t-57 -53v-342h-75z" />
<glyph unicode="s" horiz-adv-x="465" d="M33 64l39 54q25 -29 68.5 -49t90.5 -20q54 0 84 23t30 60q0 32 -31 50.5t-74.5 28t-87.5 22t-75 43t-31 80.5q0 59 48.5 99t131.5 40q109 0 179 -70l-35 -52q-51 61 -144 61q-49 0 -78 -21.5t-29 -54.5q0 -29 31 -45.5t74.5 -26t87.5 -22.5t75 -45.5t31 -84.5 q0 -64 -50 -105t-140 -41q-123 0 -195 76z" />
<glyph unicode="t" horiz-adv-x="294" d="M10 417v66h80v132h75v-132h98v-66h-98v-300q0 -28 12.5 -45t36.5 -17q33 0 51 20l22 -56q-33 -31 -90 -31q-53 0 -80 29t-27 84v316h-80z" />
<glyph unicode="u" horiz-adv-x="551" d="M75 142v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154z" />
<glyph unicode="v" horiz-adv-x="490" d="M3 483h81l161 -396l160 396h82l-201 -483h-82z" />
<glyph unicode="w" horiz-adv-x="734" d="M12 483h78l118 -385l127 385h64l127 -385l118 385h78l-154 -483h-75l-126 388l-126 -388h-75z" />
<glyph unicode="x" horiz-adv-x="486" d="M12 0l185 248l-175 235h87l134 -184l134 184h87l-175 -235l186 -248h-87l-145 198l-145 -198h-86z" />
<glyph unicode="y" horiz-adv-x="490" d="M3 483h81l161 -396l160 396h82l-242 -581q-40 -96 -142 -98q-30 0 -55 7l12 68q18 -8 41 -8q26 0 43 11t29 40l32 73z" />
<glyph unicode="z" horiz-adv-x="472" d="M52 0v58l266 359h-266v66h364v-57l-268 -361h272v-65h-368z" />
<glyph unicode="{" horiz-adv-x="260" d="M5 219v50q25 0 38.5 19.5t13.5 49.5v205q0 60 37.5 97.5t87.5 37.5h61v-55h-61q-27 0 -46.5 -22.5t-19.5 -57.5v-211q0 -68 -46 -88q46 -20 46 -88v-211q0 -34 19.5 -57t46.5 -23h61v-55h-61q-50 0 -87.5 37.5t-37.5 96.5v206q0 30 -13.5 49.5t-38.5 19.5z" />
<glyph unicode="|" horiz-adv-x="211" d="M78 -20v707h55v-707h-55z" />
<glyph unicode="}" horiz-adv-x="260" d="M17 -135h61q27 0 46.5 23t19.5 57v211q0 68 46 88q-46 20 -46 88v211q0 35 -19.5 57.5t-46.5 22.5h-61v55h61q50 0 87.5 -37.5t37.5 -97.5v-205q0 -30 13.5 -49.5t38.5 -19.5v-50q-25 0 -38.5 -19.5t-13.5 -49.5v-206q0 -59 -37.5 -96.5t-87.5 -37.5h-61v55z" />
<glyph unicode="~" horiz-adv-x="503" d="M27 429q5 50 13 88.5t23 74.5t41 55t61 19t58.5 -19.5t35 -48t20.5 -56.5t23 -47.5t35 -19.5q65 0 82 192l56 -7q-5 -51 -12.5 -89t-22.5 -74t-41 -55t-62 -19q-35 0 -58 19.5t-34.5 47.5t-21 56t-23.5 47.5t-35 19.5q-63 0 -82 -191z" />
<glyph unicode="&#xa1;" horiz-adv-x="230" d="M60 438q0 22 16.5 38.5t38.5 16.5t38.5 -16.5t16.5 -38.5t-16 -38.5t-39 -16.5t-39 16.5t-16 38.5zM69 -184l15 480h62l16 -480h-93z" />
<glyph unicode="&#xa2;" horiz-adv-x="495" d="M47 242q0 98 56.5 167.5t148.5 82.5v73h59v-71q94 -8 154 -83l-50 -46q-40 54 -104 62v-371q63 6 104 62l50 -46q-58 -75 -154 -83v-89h-59v91q-92 12 -148.5 81.5t-56.5 169.5zM125 242q0 -70 34 -120t93 -63v364q-59 -13 -93 -62.5t-34 -118.5z" />
<glyph unicode="&#xa3;" horiz-adv-x="518" d="M19 268v54h106q-28 32 -38.5 45.5t-24.5 46t-14 66.5q0 82 66 139.5t158 57.5q68 0 121 -29.5t81 -82.5l-67 -40q-14 34 -48.5 58t-78.5 24q-59 0 -101 -35t-42 -93q0 -26 9 -50t17.5 -37t28.5 -37.5t26 -32.5h150v-54h-122q7 -23 7 -43q0 -78 -76 -132q25 9 52 9 q33 0 76.5 -20.5t71.5 -20.5q31 0 57 12.5t38 27.5l36 -67q-49 -47 -135 -47q-47 0 -95 23t-84 23q-42 0 -118 -40l-30 62q64 29 98.5 68.5t34.5 84.5q0 30 -15 60h-145z" />
<glyph unicode="&#xa4;" horiz-adv-x="598" d="M27 559l47 46l78 -79q62 46 147 46q86 0 146 -46l78 78l46 -46l-78 -78q47 -63 47 -147q0 -83 -46 -148l77 -76l-46 -45l-77 75q-62 -46 -147 -46q-86 0 -149 47l-75 -76l-47 45l77 77q-45 64 -45 147q0 86 46 147zM137 333q0 -71 43.5 -121.5t118.5 -50.5t118.5 50.5 t43.5 121.5t-43.5 120.5t-118.5 49.5t-118.5 -50t-43.5 -120z" />
<glyph unicode="&#xa5;" horiz-adv-x="626" d="M9 667h97l207 -310l207 310h97l-227 -333h215v-52h-250v-107h250v-53h-250v-122h-83v122h-250v53h250v107h-250v52h214z" />
<glyph unicode="&#xa6;" horiz-adv-x="211" d="M78 -20v316h55v-316h-55zM78 371v316h55v-316h-55z" />
<glyph unicode="&#xa7;" horiz-adv-x="468" d="M34 -3l38 49q60 -72 156 -72q53 0 85 23t32 64q0 34 -31 53.5t-74.5 30t-87.5 23t-75 43t-31 79.5q0 50 32.5 82.5t82.5 45.5q-115 36 -115 123q0 58 48.5 97t131.5 39q117 0 178 -71l-34 -45q-50 60 -142 60q-48 0 -78.5 -22t-30.5 -58q0 -31 31 -48.5t74.5 -26.5 t87.5 -22t75 -45t31 -84q0 -87 -92 -128q92 -35 92 -121q0 -69 -52 -108t-138 -39q-114 0 -194 78zM119 298q0 -26 21.5 -44.5t42 -25.5t67.5 -18q7 -2 11 -3q83 36 83 98q0 39 -30.5 59t-82.5 33q-62 -16 -87 -40t-25 -59z" />
<glyph unicode="&#xa8;" horiz-adv-x="272" d="M-14 604q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14t-33 13.5t-14 33.5zM192 604q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xa9;" horiz-adv-x="778" d="M44 334q0 143 101 244t244 101t244 -101t101 -244t-101 -244t-244 -101t-244 101.5t-101 243.5zM75 334q0 -130 92 -222t222 -92t222 92t92 222t-92 222t-222 92t-222 -92t-92 -222zM183 335q0 91 60.5 152t147.5 61q90 0 146 -66l-25 -24q-19 26 -52.5 41.5t-68.5 15.5 q-70 0 -120.5 -50.5t-50.5 -129.5q0 -77 51 -129t120 -52q36 0 68.5 16t52.5 42l26 -25q-57 -66 -147 -66q-87 0 -147.5 61.5t-60.5 152.5z" />
<glyph unicode="&#xaa;" horiz-adv-x="378" d="M41 422q0 49 33.5 76t78.5 27q67 0 107 -42v55q0 30 -23 47.5t-56 17.5q-59 0 -99 -46l-25 37q52 54 131 54q57 0 93 -27t36 -84v-211h-57v35q-40 -43 -107 -43q-44 0 -78 28t-34 76zM99 422q0 -30 21.5 -48t54.5 -18q56 0 85 38v56q-29 38 -85 38q-33 0 -54.5 -18.5 t-21.5 -47.5z" />
<glyph unicode="&#xab;" horiz-adv-x="439" d="M30 243l160 177h75l-160 -177l160 -180h-75zM174 243l160 177h75l-160 -177l160 -180h-75z" />
<glyph unicode="&#xac;" horiz-adv-x="504" d="M29 404v53h441v-246h-55v193h-386z" />
<glyph unicode="&#xad;" horiz-adv-x="300" d="M30 209v66h240v-66h-240z" />
<glyph unicode="&#xae;" horiz-adv-x="494" d="M35 465q0 88 62 150t150 62q89 0 150.5 -61.5t61.5 -150.5q0 -88 -62 -150t-150 -62t-150 62t-62 150zM63 465q0 -76 54 -130t130 -54t129.5 54t53.5 130t-53.5 129.5t-129.5 53.5q-77 0 -130.5 -53.5t-53.5 -129.5zM166 343v243h99q32 0 54.5 -20.5t22.5 -53.5 q0 -35 -22.5 -53.5t-39.5 -18.5l65 -97h-40l-63 96h-44v-96h-32zM198 468h67q16 0 30 13t14 31q0 19 -13.5 32.5t-30.5 13.5h-67v-90z" />
<glyph unicode="&#xaf;" horiz-adv-x="363" d="M0 572v48h363v-48h-363z" />
<glyph unicode="&#xb0;" horiz-adv-x="290" d="M23 555q0 50 35.5 86t85.5 36q51 0 87 -36t36 -86q0 -51 -36 -86.5t-87 -35.5q-50 0 -85.5 35.5t-35.5 86.5zM72 555q0 -31 21 -52.5t51 -21.5q31 0 53 21.5t22 52.5q0 30 -22 52t-53 22q-30 0 -51 -22t-21 -52z" />
<glyph unicode="&#xb1;" horiz-adv-x="499" d="M29 0v52h441v-52h-441zM29 324v52h192v207h57v-207h192v-52h-192v-214h-57v214h-192z" />
<glyph unicode="&#xb2;" horiz-adv-x="388" d="M49 764q50 63 147 63q60 0 101.5 -30.5t41.5 -87.5q0 -56 -50 -111.5t-151 -127.5h203v-49h-291v45q124 88 176.5 140.5t52.5 98.5q0 36 -25 54.5t-60 18.5q-73 0 -112 -52z" />
<glyph unicode="&#xb3;" horiz-adv-x="388" d="M42 479l32 38q44 -54 116 -54q43 0 68 19t25 51q0 69 -104 69q-34 0 -40 -1v50q7 -1 39 -1q98 0 98 64q0 30 -25.5 47t-63.5 17q-64 0 -109 -49l-31 36q55 62 145 62q64 0 104 -29t40 -78q0 -40 -27 -63.5t-62 -29.5q34 -3 65 -28t31 -69q0 -52 -41 -84t-110 -32 q-103 0 -150 65z" />
<glyph unicode="&#xb4;" horiz-adv-x="226" d="M0 556l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xb5;" horiz-adv-x="565" d="M75 -184v667h75v-318q0 -112 110 -112q41 0 80 22t61 53v355h75v-370q0 -58 47 -58q11 0 19 2l6 -65q-22 -4 -40 -4q-88 0 -104 86q-27 -37 -68 -61.5t-85 -24.5q-75 0 -101 48v-220h-75z" />
<glyph unicode="&#xb6;" horiz-adv-x="449" d="M27 495q0 71 50.5 121.5t121.5 50.5h179v-767h-45v722h-89v-722h-45v423q-71 0 -121.5 50.5t-50.5 121.5z" />
<glyph unicode="&#xb7;" horiz-adv-x="230" d="M60 244q0 22 16 38.5t39 16.5t39 -16.5t16 -38.5t-16.5 -38t-38.5 -16t-38.5 16t-16.5 38z" />
<glyph unicode="&#xb8;" horiz-adv-x="205" d="M0 -161l19 38q35 -29 80 -29q25 0 43 11.5t18 30.5q0 35 -37 35q-23 0 -38 -17l-33 19l31 84h45l-26 -66q16 11 37 11q29 0 47.5 -18.5t18.5 -48.5q0 -36 -30 -58t-74 -22q-63 0 -101 30z" />
<glyph unicode="&#xb9;" horiz-adv-x="235" d="M14 711l108 110h53v-400h-60v322l-66 -69z" />
<glyph unicode="&#xba;" horiz-adv-x="405" d="M40 483q0 70 44.5 117.5t117.5 47.5q74 0 118.5 -47.5t44.5 -117.5t-44.5 -117.5t-118.5 -47.5q-73 0 -117.5 47.5t-44.5 117.5zM100 483q0 -51 27.5 -84t74.5 -33q48 0 76 33t28 84q0 50 -28 82.5t-76 32.5q-47 0 -74.5 -32.5t-27.5 -82.5z" />
<glyph unicode="&#xbb;" horiz-adv-x="439" d="M30 63l160 180l-160 177h75l160 -177l-160 -180h-75zM174 63l160 180l-160 177h75l160 -177l-160 -180h-75z" />
<glyph unicode="&#xbc;" horiz-adv-x="770" d="M14 557l108 110h53v-400h-60v322l-66 -69zM108 0l426 667h56l-427 -667h-55zM420 100v44l172 256h83v-251h58v-49h-58v-100h-59v100h-196zM480 149h136v198z" />
<glyph unicode="&#xbd;" horiz-adv-x="807" d="M14 557l108 110h53v-400h-60v322l-66 -69zM108 0l426 667h56l-427 -667h-55zM467 343q49 63 147 63q60 0 101.5 -30.5t41.5 -87.5q0 -56 -50 -111.5t-151 -127.5h203v-49h-291v45q124 88 176.5 140.5t52.5 98.5q0 36 -25 54.5t-60 18.5q-73 0 -112 -52z" />
<glyph unicode="&#xbe;" horiz-adv-x="878" d="M42 325l32 38q44 -54 116 -54q43 0 68 19t25 51q0 69 -104 69q-34 0 -40 -1v50q7 -1 39 -1q98 0 98 64q0 30 -25.5 47t-63.5 17q-64 0 -109 -49l-31 36q55 62 145 62q64 0 104 -29t40 -78q0 -40 -27 -63.5t-62 -29.5q34 -3 65 -28t31 -69q0 -52 -41 -84t-110 -32 q-103 0 -150 65zM216 0l426 667h56l-427 -667h-55zM529 100v44l172 256h83v-251h58v-49h-58v-100h-59v100h-196zM589 149h136v198z" />
<glyph unicode="&#xbf;" horiz-adv-x="394" d="M31 -41q0 42 20 75.5t48 54.5t56.5 40t48.5 42t20 50q0 28 -26 48l60 27q39 -35 39 -82q0 -35 -18.5 -63t-45 -47.5t-53 -37.5t-45 -42.5t-18.5 -53.5q0 -39 30.5 -65.5t86.5 -26.5q99 0 160 81l49 -53q-78 -102 -216 -102q-89 0 -142.5 44.5t-53.5 110.5zM183 437 q0 23 16.5 39.5t38.5 16.5t38.5 -16.5t16.5 -39.5q0 -22 -16.5 -38t-38.5 -16t-38.5 16t-16.5 38z" />
<glyph unicode="&#xc0;" horiz-adv-x="658" d="M9 0l268 667h103l269 -667h-95l-59 148h-332l-59 -148h-95zM160 867h78l148 -144h-57zM187 222h283l-141 359z" />
<glyph unicode="&#xc1;" horiz-adv-x="658" d="M9 0l268 667h103l269 -667h-95l-59 148h-332l-59 -148h-95zM187 222h283l-141 359zM272 723l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xc2;" horiz-adv-x="658" d="M9 0l268 667h103l269 -667h-95l-59 148h-332l-59 -148h-95zM187 222h283l-141 359zM198 723l95 144h72l98 -144h-51l-83 106l-80 -106h-51z" />
<glyph unicode="&#xc3;" horiz-adv-x="658" d="M9 0l268 667h103l269 -667h-95l-59 148h-332l-59 -148h-95zM173 727q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5 q-21 0 -34.5 -21.5t-13.5 -64.5h-45zM187 222h283l-141 359z" />
<glyph unicode="&#xc4;" horiz-adv-x="658" d="M9 0l268 667h103l269 -667h-95l-59 148h-332l-59 -148h-95zM180 771q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14t-33 14t-14 33zM187 222h283l-141 359zM386 771q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xc5;" horiz-adv-x="658" d="M9 0l268 667h103l269 -667h-95l-59 148h-332l-59 -148h-95zM187 222h283l-141 359zM231 788q0 41 29 70t69 29t69 -29t29 -70q0 -40 -28.5 -69t-69.5 -29t-69.5 29t-28.5 69zM271 788q0 -24 17 -41.5t41 -17.5t41 17.5t17 41.5q0 25 -16.5 42t-41.5 17q-24 0 -41 -17 t-17 -42z" />
<glyph unicode="&#xc6;" horiz-adv-x="947" d="M7 0l416 667h470v-74h-354v-215h347v-74h-347v-230h354v-74h-437v148h-263l-91 -148h-95zM234 222h222v359z" />
<glyph unicode="&#xc7;" horiz-adv-x="676" d="M51 333q0 152 98.5 248.5t244.5 96.5q160 0 253 -132l-70 -39q-29 43 -78 70t-105 27q-110 0 -183.5 -76.5t-73.5 -194.5t73.5 -194.5t183.5 -76.5q56 0 105 26.5t78 70.5l71 -39q-95 -128 -244 -132l-15 -39q16 11 37 11q29 0 47.5 -18.5t18.5 -48.5q0 -36 -30 -58 t-74 -22q-64 0 -101 30l19 38q35 -29 80 -29q25 0 43 11.5t18 30.5q0 35 -37 35q-23 0 -38 -17l-33 19l21 59q-134 11 -221.5 105.5t-87.5 237.5z" />
<glyph unicode="&#xc8;" horiz-adv-x="569" d="M78 0v667h437v-74h-354v-215h347v-74h-347v-230h354v-74h-437zM127 867h78l148 -144h-57z" />
<glyph unicode="&#xc9;" horiz-adv-x="569" d="M78 0v667h437v-74h-354v-215h347v-74h-347v-230h354v-74h-437zM239 723l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xca;" horiz-adv-x="569" d="M78 0v667h437v-74h-354v-215h347v-74h-347v-230h354v-74h-437zM163 723l95 144h72l98 -144h-51l-83 106l-80 -106h-51z" />
<glyph unicode="&#xcb;" horiz-adv-x="569" d="M78 0v667h437v-74h-354v-215h347v-74h-347v-230h354v-74h-437zM146 771q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14t-33 14t-14 33zM352 771q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xcc;" horiz-adv-x="239" d="M-50 867h78l148 -144h-57zM78 0v667h83v-667h-83z" />
<glyph unicode="&#xcd;" horiz-adv-x="239" d="M63 723l148 144h78l-169 -144h-57zM78 0v667h83v-667h-83z" />
<glyph unicode="&#xce;" horiz-adv-x="239" d="M-12 723l95 144h72l98 -144h-51l-83 106l-80 -106h-51zM78 0v667h83v-667h-83z" />
<glyph unicode="&#xcf;" horiz-adv-x="239" d="M-30 771q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14t-33 14t-14 33zM78 0v667h83v-667h-83zM176 771q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xd0;" horiz-adv-x="728" d="M10 299v61h96v307h228q153 0 247.5 -95t94.5 -239q0 -145 -94.5 -239t-247.5 -94h-228v299h-96zM189 74h145q118 0 187 74t69 185q0 112 -68 186t-188 74h-145v-233h169v-61h-169v-225z" />
<glyph unicode="&#xd1;" horiz-adv-x="708" d="M78 0v667h85l384 -521v521h83v-667h-80l-389 532v-532h-83zM196 727q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5 q-21 0 -34.5 -21.5t-13.5 -64.5h-45z" />
<glyph unicode="&#xd2;" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98q-147 0 -239 98t-92 247zM137 333q0 -118 67 -194.5t178 -76.5q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195zM214 867h78l148 -144h-57z" />
<glyph unicode="&#xd3;" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98q-147 0 -239 98t-92 247zM137 333q0 -118 67 -194.5t178 -76.5q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195zM326 723l148 144h78l-169 -144h-57z " />
<glyph unicode="&#xd4;" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98q-147 0 -239 98t-92 247zM137 333q0 -118 67 -194.5t178 -76.5q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195zM252 723l95 144h72l98 -144h-51 l-83 106l-80 -106h-51z" />
<glyph unicode="&#xd5;" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98q-147 0 -239 98t-92 247zM137 333q0 -118 67 -194.5t178 -76.5q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195zM226 727q0 60 25.5 97t71.5 37 q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45z" />
<glyph unicode="&#xd6;" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q146 0 238.5 -98t92.5 -247t-92.5 -247t-238.5 -98q-147 0 -239 98t-92 247zM137 333q0 -118 67 -194.5t178 -76.5q110 0 177.5 76.5t67.5 194.5q0 119 -67.5 195t-177.5 76q-111 0 -178 -76t-67 -195zM232 771q0 19 14 32.5t33 13.5 t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14t-33 14t-14 33zM438 771q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xd7;" horiz-adv-x="499" d="M64 185l148 149l-148 148l37 38l148 -149l149 149l37 -38l-148 -148l148 -149l-37 -37l-149 149l-148 -149z" />
<glyph unicode="&#xd8;" horiz-adv-x="765" d="M51 333q0 149 92 247t239 98q92 0 167 -42l21 31h66l-42 -62q57 -47 88 -117.5t31 -154.5q0 -149 -92.5 -247t-238.5 -98q-97 0 -173 45l-22 -33h-66l44 65q-114 98 -114 268zM137 333q0 -126 73 -201l296 440q-56 32 -124 32q-111 0 -178 -76t-67 -195zM252 97 q55 -35 130 -35q110 0 177.5 76.5t67.5 194.5q0 130 -78 205z" />
<glyph unicode="&#xd9;" horiz-adv-x="700" d="M78 259v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5t-202.5 72.5t-69.5 198.5zM181 867h78l148 -144h-57z" />
<glyph unicode="&#xda;" horiz-adv-x="700" d="M78 259v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5t-202.5 72.5t-69.5 198.5zM293 723l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xdb;" horiz-adv-x="700" d="M78 259v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5t-202.5 72.5t-69.5 198.5zM220 723l95 144h72l98 -144h-51l-83 106l-80 -106h-51z" />
<glyph unicode="&#xdc;" horiz-adv-x="700" d="M78 259v408h83v-406q0 -93 49 -146t140 -53t140 53t49 146v406h83v-407q0 -127 -69.5 -199.5t-202.5 -72.5t-202.5 72.5t-69.5 198.5zM201 771q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14q-20 0 -33.5 14t-13.5 33zM407 771q0 19 14 32.5t33 13.5 t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xdd;" horiz-adv-x="626" d="M9 667h97l207 -310l207 310h97l-262 -385v-282h-83v282zM256 723l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xde;" horiz-adv-x="587" d="M78 0v667h83v-119h185q97 0 153 -58t56 -144q0 -85 -56.5 -142.5t-152.5 -57.5h-185v-146h-83zM161 220h175q59 0 96 35t37 91t-37 92t-96 36h-175v-254z" />
<glyph unicode="&#xdf;" horiz-adv-x="597" d="M75 0v499q0 75 52.5 126.5t138.5 51.5q72 0 123.5 -34.5t51.5 -91.5q0 -37 -23.5 -65t-51.5 -42.5t-51.5 -37t-23.5 -49.5q0 -28 29.5 -44.5t71.5 -25.5t84.5 -22t72 -45.5t29.5 -84.5q0 -62 -48.5 -104.5t-137.5 -42.5q-66 0 -107.5 20t-78.5 58l38 52 q23 -30 61.5 -49.5t86.5 -19.5q54 0 83.5 24.5t29.5 59.5q0 32 -29.5 50.5t-71.5 28.5t-84.5 22.5t-72 43t-29.5 78.5q0 37 23 66t50 44t50 35t23 41q0 32 -30 50t-69 18q-49 0 -82 -30.5t-33 -80.5v-499h-75z" />
<glyph unicode="&#xe0;" horiz-adv-x="527" d="M48 148q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117zM96 700h78l148 -144h-57zM125 147q0 -46 33.5 -75.5t85.5 -29.5q90 0 133 60 v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5z" />
<glyph unicode="&#xe1;" horiz-adv-x="527" d="M48 148q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117zM125 147q0 -46 33.5 -75.5t85.5 -29.5q90 0 133 60v91q-43 60 -133 60 q-52 0 -85.5 -29.5t-33.5 -76.5zM208 556l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xe2;" horiz-adv-x="527" d="M48 148q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117zM125 147q0 -46 33.5 -75.5t85.5 -29.5q90 0 133 60v91q-43 60 -133 60 q-52 0 -85.5 -29.5t-33.5 -76.5zM133 556l95 144h72l98 -144h-51l-83 106l-80 -106h-51z" />
<glyph unicode="&#xe3;" horiz-adv-x="527" d="M48 148q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117zM109 560q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5 t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45zM125 147q0 -46 33.5 -75.5t85.5 -29.5q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5z" />
<glyph unicode="&#xe4;" horiz-adv-x="527" d="M48 148q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117zM115 604q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14 q-20 0 -33.5 13.5t-13.5 33.5zM125 147q0 -46 33.5 -75.5t85.5 -29.5q90 0 133 60v91q-43 60 -133 60q-52 0 -85.5 -29.5t-33.5 -76.5zM321 604q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xe5;" horiz-adv-x="527" d="M48 148q0 76 50.5 117.5t118.5 41.5q103 0 160 -66v87q0 48 -34 75t-88 27q-85 0 -148 -67l-35 52q77 80 193 80q83 0 135 -40t52 -123v-332h-75v55q-61 -67 -160 -67q-67 0 -118 43t-51 117zM125 147q0 -46 33.5 -75.5t85.5 -29.5q90 0 133 60v91q-43 60 -133 60 q-52 0 -85.5 -29.5t-33.5 -76.5zM167 641q0 41 29 70t69 29t69 -29t29 -70t-28.5 -69.5t-69.5 -28.5t-69.5 28.5t-28.5 69.5zM207 641q0 -24 17 -41.5t41 -17.5t41 17.5t17 41.5q0 25 -16.5 42t-41.5 17q-24 0 -41 -17t-17 -42z" />
<glyph unicode="&#xe6;" horiz-adv-x="889" d="M48 148q0 75 51.5 117t126.5 42q112 0 175 -64v86q0 47 -36.5 74t-96.5 27q-94 0 -161 -67l-35 52q79 80 205 80q64 0 111 -26t60 -79q60 105 179 105q101 0 158.5 -73t57.5 -186v-19h-367q5 -71 48 -118t113 -47q84 0 139 61l36 -51q-72 -74 -178 -74q-136 0 -193 116 q-26 -52 -79.5 -84t-119.5 -32q-82 0 -138 42.5t-56 117.5zM125 152q0 -45 36 -72.5t95 -27.5q62 0 103.5 39t41.5 89v12q-52 61 -145 61q-59 0 -95 -27.5t-36 -73.5zM476 272h293q-1 63 -38 112t-109 49q-66 0 -104.5 -49.5t-41.5 -111.5z" />
<glyph unicode="&#xe7;" horiz-adv-x="495" d="M47 242q0 109 67 181t174 72q112 0 177 -84l-50 -46q-46 63 -123 63q-76 0 -121.5 -52t-45.5 -134t45.5 -134.5t121.5 -52.5t123 63l50 -46q-60 -77 -159 -83l-16 -42q16 11 37 11q29 0 47.5 -18.5t18.5 -48.5q0 -36 -30 -58t-74 -22q-63 0 -101 30l19 38q35 -29 80 -29 q25 0 43 11.5t18 30.5q0 35 -37 35q-23 0 -38 -17l-33 19l22 61q-96 9 -155.5 79t-59.5 173z" />
<glyph unicode="&#xe8;" horiz-adv-x="563" d="M47 242q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74q-108 0 -177 70.5t-69 183.5zM116 700h78l148 -144h-57zM126 272h317q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112z " />
<glyph unicode="&#xe9;" horiz-adv-x="563" d="M47 242q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74q-108 0 -177 70.5t-69 183.5zM126 272h317q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112zM228 556l148 144h78 l-169 -144h-57z" />
<glyph unicode="&#xea;" horiz-adv-x="563" d="M47 242q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74q-108 0 -177 70.5t-69 183.5zM126 272h317q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112zM154 556l95 144h72l98 -144 h-51l-83 106l-80 -106h-51z" />
<glyph unicode="&#xeb;" horiz-adv-x="563" d="M47 242q0 106 68 179.5t170 73.5q107 0 169.5 -73.5t62.5 -185.5v-19h-391q5 -71 52 -119t122 -48q90 0 149 61l36 -49q-74 -74 -192 -74q-108 0 -177 70.5t-69 183.5zM126 272h317q-1 62 -42 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112zM136 604q0 19 14 32.5 t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14t-33 13.5t-14 33.5zM342 604q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xec;" horiz-adv-x="225" d="M-57 700h78l148 -144h-57zM75 0v483h75v-483h-75z" />
<glyph unicode="&#xed;" horiz-adv-x="225" d="M56 556l148 144h78l-169 -144h-57zM75 0v483h75v-483h-75z" />
<glyph unicode="&#xee;" horiz-adv-x="225" d="M-20 556l95 144h72l98 -144h-51l-83 106l-80 -106h-51zM75 0v483h75v-483h-75z" />
<glyph unicode="&#xef;" horiz-adv-x="225" d="M-37 604q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14q-20 0 -33.5 13.5t-13.5 33.5zM75 0v483h75v-483h-75zM169 604q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xf0;" d="M47 234q0 106 62 175.5t158 69.5t158 -89q-49 88 -160 170l-143 -63l-18 42l118 52q-11 7 -23.5 15t-28 18t-23.5 15l41 62q67 -41 112 -76l108 48l17 -41l-86 -38q186 -158 186 -347q0 -114 -65 -186.5t-174 -72.5q-107 0 -173 70t-66 176zM125 234q0 -75 43.5 -127 t117.5 -52t117 52t43 127q0 74 -43 126t-117 52t-117.5 -52t-43.5 -126z" />
<glyph unicode="&#xf1;" horiz-adv-x="551" d="M75 0v483h75v-70q28 33 75 57.5t97 24.5q154 0 154 -156v-339h-75v316q0 61 -28 86.5t-80 25.5q-42 0 -81.5 -22t-61.5 -53v-353h-75zM120 560q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97 t-71.5 -37q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45z" />
<glyph unicode="&#xf2;" d="M47 242q0 108 65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73t-173.5 73t-65.5 181zM117 700h78l148 -144h-57zM125 242q0 -78 43.5 -132.5t117.5 -54.5t117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5z" />
<glyph unicode="&#xf3;" d="M47 242q0 108 65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73t-173.5 73t-65.5 181zM125 242q0 -78 43.5 -132.5t117.5 -54.5t117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5zM229 556l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xf4;" d="M47 242q0 108 65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73t-173.5 73t-65.5 181zM125 242q0 -78 43.5 -132.5t117.5 -54.5t117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5zM154 556l95 144h72l98 -144h-51l-83 106l-80 -106 h-51z" />
<glyph unicode="&#xf5;" d="M47 242q0 108 65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73t-173.5 73t-65.5 181zM125 242q0 -78 43.5 -132.5t117.5 -54.5t117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5zM130 560q0 60 25.5 97t71.5 37q24 0 42.5 -14.5 t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45z" />
<glyph unicode="&#xf6;" d="M47 242q0 108 65.5 180.5t173.5 72.5t173.5 -72.5t65.5 -180.5t-65.5 -181t-173.5 -73t-173.5 73t-65.5 181zM125 242q0 -78 43.5 -132.5t117.5 -54.5t117 54.5t43 132.5t-43 132t-117 54t-117.5 -54.5t-43.5 -131.5zM136 604q0 19 14 32.5t33 13.5t32.5 -13.5 t13.5 -32.5t-13.5 -33t-32.5 -14t-33 13.5t-14 33.5zM342 604q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xf7;" horiz-adv-x="511" d="M29 311v52h453v-52h-453zM210 144q0 19 13 32.5t32 13.5t33 -13.5t14 -32.5t-14 -32.5t-33 -13.5t-32 13.5t-13 32.5zM210 526q0 19 13 32.5t32 13.5q20 0 33.5 -13.5t13.5 -32.5t-14 -32.5t-33 -13.5t-32 13.5t-13 32.5z" />
<glyph unicode="&#xf8;" d="M47 242q0 108 65.5 180.5t173.5 72.5q79 0 137 -41l23 29h54l-45 -57q70 -72 70 -184q0 -108 -65.5 -181t-173.5 -73q-83 0 -142 45l-26 -33h-54l48 61q-65 71 -65 181zM125 242q0 -70 34 -121l219 277q-38 30 -92 30q-74 0 -117.5 -54.5t-43.5 -131.5zM188 89 q42 -34 98 -34q74 0 117 54.5t43 132.5q0 73 -38 125z" />
<glyph unicode="&#xf9;" horiz-adv-x="551" d="M75 142v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154zM106 700h78l148 -144h-57z" />
<glyph unicode="&#xfa;" horiz-adv-x="551" d="M75 142v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154zM218 556l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xfb;" horiz-adv-x="551" d="M75 142v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154zM143 556l95 144h72l98 -144h-51l-83 106l-80 -106h-51z" />
<glyph unicode="&#xfc;" horiz-adv-x="551" d="M75 142v341h75v-318q0 -60 27.5 -85t80.5 -25q42 0 81.5 21t61.5 52v355h75v-483h-75v68q-30 -34 -75.5 -57t-96.5 -23q-154 0 -154 154zM127 604q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14q-20 0 -33.5 13.5t-13.5 33.5zM333 604q0 19 14 32.5 t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#xfd;" horiz-adv-x="490" d="M3 483h81l161 -396l160 396h82l-242 -581q-40 -96 -142 -98q-30 0 -55 7l12 68q18 -8 41 -8q26 0 43 11t29 40l32 73zM188 556l148 144h78l-169 -144h-57z" />
<glyph unicode="&#xfe;" d="M75 -184v851h75v-256q27 38 70 61t93 23q96 0 155.5 -68.5t59.5 -184.5t-59.5 -185t-155.5 -69q-102 0 -163 85v-257h-75zM150 133q20 -33 60.5 -55.5t83.5 -22.5q71 0 113 52.5t42 134.5t-42 134t-113 52q-43 0 -83.5 -22.5t-60.5 -54.5v-218z" />
<glyph unicode="&#xff;" horiz-adv-x="490" d="M3 483h81l161 -396l160 396h82l-242 -581q-40 -96 -142 -98q-30 0 -55 7l12 68q18 -8 41 -8q26 0 43 11t29 40l32 73zM95 604q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14q-20 0 -33.5 13.5t-13.5 33.5zM301 604q0 19 14 32.5t33 13.5t33 -13.5 t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#x152;" horiz-adv-x="1105" d="M51 333q0 149 90 246.5t234 97.5q73 0 137.5 -34t100.5 -97v121h438v-74h-355v-215h348v-74h-348v-230h355v-74h-438v120q-36 -63 -100.5 -97.5t-137.5 -34.5q-144 0 -234 98t-90 247zM137 333q0 -119 67.5 -195t179.5 -76q79 0 139.5 41.5t89.5 119.5v220 q-29 78 -89.5 119t-139.5 41q-112 0 -179.5 -75.5t-67.5 -194.5z" />
<glyph unicode="&#x153;" horiz-adv-x="962" d="M47 242q0 108 65.5 180.5t173.5 72.5q42 0 78 -14t59.5 -36.5t38 -43.5t24.5 -44q22 52 71.5 95t126.5 43q107 0 169.5 -73.5t62.5 -185.5v-19h-390q5 -71 51.5 -119t121.5 -48q89 0 150 61l36 -49q-76 -74 -192 -74q-83 0 -133 41.5t-75 96.5q-62 -138 -199 -138 q-108 0 -173.5 73t-65.5 181zM125 242q0 -79 44 -133.5t117 -54.5t116.5 54t43.5 134q0 79 -43.5 132.5t-116.5 53.5t-117 -53.5t-44 -132.5zM525 272h318q-2 62 -43 111.5t-117 49.5q-72 0 -113.5 -49t-44.5 -112z" />
<glyph unicode="&#x178;" horiz-adv-x="626" d="M9 667h97l207 -310l207 310h97l-262 -385v-282h-83v282zM165 771q0 19 14 32.5t33 13.5t32.5 -13.5t13.5 -32.5t-13.5 -33t-32.5 -14q-20 0 -33.5 14t-13.5 33zM371 771q0 19 14 32.5t33 13.5t33 -13.5t14 -32.5t-14 -33t-33 -14t-33 14t-14 33z" />
<glyph unicode="&#x2c6;" horiz-adv-x="265" d="M0 556l95 144h72l98 -144h-51l-83 106l-80 -106h-51z" />
<glyph unicode="&#x2dc;" horiz-adv-x="313" d="M0 560q0 60 25.5 97t71.5 37q24 0 42.5 -14.5t28 -31.5t23 -31.5t29.5 -14.5q21 0 34.5 21.5t13.5 64.5h45q0 -60 -25.5 -97t-71.5 -37q-25 0 -43.5 14.5t-27.5 31.5t-22.5 31.5t-29.5 14.5q-21 0 -34.5 -21.5t-13.5 -64.5h-45z" />
<glyph unicode="&#x2000;" horiz-adv-x="443" />
<glyph unicode="&#x2001;" horiz-adv-x="887" />
<glyph unicode="&#x2002;" horiz-adv-x="443" />
<glyph unicode="&#x2003;" horiz-adv-x="887" />
<glyph unicode="&#x2004;" horiz-adv-x="295" />
<glyph unicode="&#x2005;" horiz-adv-x="221" />
<glyph unicode="&#x2006;" horiz-adv-x="147" />
<glyph unicode="&#x2007;" horiz-adv-x="147" />
<glyph unicode="&#x2008;" horiz-adv-x="110" />
<glyph unicode="&#x2009;" horiz-adv-x="177" />
<glyph unicode="&#x200a;" horiz-adv-x="49" />
<glyph unicode="&#x2010;" horiz-adv-x="300" d="M30 209v66h240v-66h-240z" />
<glyph unicode="&#x2011;" horiz-adv-x="300" d="M30 209v66h240v-66h-240z" />
<glyph unicode="&#x2012;" horiz-adv-x="300" d="M30 209v66h240v-66h-240z" />
<glyph unicode="&#x2013;" horiz-adv-x="593" d="M30 209v66h533v-66h-533z" />
<glyph unicode="&#x2014;" horiz-adv-x="833" d="M30 209v66h773v-66h-773z" />
<glyph unicode="&#x2018;" horiz-adv-x="230" d="M47 527q0 44 22.5 84t58.5 66l37 -30q-24 -16 -42.5 -42.5t-21.5 -50.5q1 0 6 0.5t7 0.5q21 0 35 -14.5t14 -36.5t-15.5 -37.5t-37.5 -15.5q-26 0 -44.5 20.5t-18.5 55.5z" />
<glyph unicode="&#x2019;" horiz-adv-x="230" d="M57 481q24 16 43 42.5t22 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5q0 -44 -23 -84.5t-59 -66.5z" />
<glyph unicode="&#x201a;" horiz-adv-x="230" d="M57 -96q25 16 43.5 42.5t21.5 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5q0 -44 -23 -84.5t-59 -66.5z" />
<glyph unicode="&#x201c;" horiz-adv-x="390" d="M54 527q0 44 22.5 84t58.5 66l37 -30q-24 -16 -43 -42.5t-21 -50.5h5q5 1 8 1q21 0 34.5 -14.5t13.5 -36.5t-15.5 -37.5t-37.5 -15.5q-26 0 -44 20.5t-18 55.5zM214 527q0 44 22.5 84t58.5 66l37 -30q-24 -16 -42.5 -42.5t-21.5 -50.5h5q5 1 8 1q21 0 35 -14.5t14 -36.5 t-16 -37.5t-38 -15.5q-26 0 -44 20.5t-18 55.5z" />
<glyph unicode="&#x201d;" horiz-adv-x="390" d="M57 481q24 16 43 42.5t22 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5q0 -44 -23 -84.5t-59 -66.5zM218 481q24 16 42.5 42.5t21.5 50.5q-4 -2 -13 -2q-21 0 -35 14.5t-14 36.5t15.5 38t37.5 16q26 0 44.5 -20.5 t18.5 -55.5q0 -44 -23 -84.5t-58 -66.5z" />
<glyph unicode="&#x201e;" horiz-adv-x="390" d="M57 -96q25 16 43.5 42.5t21.5 50.5q-4 -2 -14 -2q-21 0 -34.5 14.5t-13.5 36.5t15.5 38t37.5 16q26 0 44.5 -20.5t18.5 -55.5q0 -44 -23 -84.5t-59 -66.5zM218 -96q24 16 42.5 42.5t21.5 50.5q-4 -2 -13 -2q-21 0 -35 14.5t-14 36.5t15.5 38t37.5 16q26 0 44.5 -20.5 t18.5 -55.5q0 -44 -23 -84.5t-58 -66.5z" />
<glyph unicode="&#x2022;" horiz-adv-x="358" d="M72 242q0 44 32 76t76 32t76 -32t32 -76t-32 -75.5t-76 -31.5t-76 31.5t-32 75.5z" />
<glyph unicode="&#x2026;" horiz-adv-x="690" d="M60 45q0 23 16 39t38 16t38.5 -16t16.5 -39q0 -22 -16.5 -38.5t-38.5 -16.5t-38 16.5t-16 38.5zM290 45q0 23 16 39t38 16q23 0 39.5 -16.5t16.5 -38.5t-17 -38.5t-39 -16.5t-38 16.5t-16 38.5zM520 45q0 23 16 39t39 16t39 -16t16 -39q0 -22 -16.5 -38.5t-38.5 -16.5 t-38.5 16.5t-16.5 38.5z" />
<glyph unicode="&#x202f;" horiz-adv-x="177" />
<glyph unicode="&#x2039;" horiz-adv-x="295" d="M30 243l160 177h75l-160 -177l160 -180h-75z" />
<glyph unicode="&#x203a;" horiz-adv-x="295" d="M30 63l160 180l-160 177h75l160 -177l-160 -180h-75z" />
<glyph unicode="&#x205f;" horiz-adv-x="221" />
<glyph unicode="&#x20ac;" horiz-adv-x="695" d="M31 237v52h43q-2 28 -2 44t2 46h-43v52h53q30 112 120.5 179.5t210.5 67.5q160 0 253 -132l-70 -39q-29 43 -78 70t-105 27q-85 0 -150 -47t-92 -126h303v-52h-315q-3 -23 -3 -46t3 -44h315v-52h-303q26 -80 91.5 -127.5t150.5 -47.5q56 0 105 26.5t78 70.5l71 -39 q-97 -132 -254 -132q-121 0 -211.5 67.5t-119.5 181.5h-53z" />
<glyph unicode="&#x2122;" horiz-adv-x="454" d="M17 641v26h152v-26h-62v-194h-28v194h-62zM205 447v220h43l64 -160l64 160h43v-220h-28v182l-75 -182h-8l-75 182v-182h-28z" />
<glyph unicode="&#xe000;" horiz-adv-x="485" d="M0 0v485h485v-485h-485z" />
<hkern g1="B" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="10" />
<hkern g1="B" g2="T" k="17" />
<hkern g1="B" g2="W" k="10" />
<hkern g1="B" g2="V" k="13" />
<hkern g1="B" g2="Y,Yacute,Ydieresis" k="30" />
<hkern g1="C,Ccedilla" g2="question" k="3" />
<hkern g1="C,Ccedilla" g2="W" k="3" />
<hkern g1="C,Ccedilla" g2="V" k="2" />
<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="16" />
<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="3" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="question" k="16" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="10" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="J" k="20" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="T" k="27" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="W" k="20" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="V" k="20" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="Y,Yacute,Ydieresis" k="40" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="37" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="Z" k="17" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="27" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="X" k="30" />
<hkern g1="F" g2="J" k="59" />
<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="36" />
<hkern g1="F" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="50" />
<hkern g1="F" g2="ampersand" k="6" />
<hkern g1="G" g2="question" k="6" />
<hkern g1="G" g2="T" k="3" />
<hkern g1="G" g2="W" k="3" />
<hkern g1="G" g2="V" k="6" />
<hkern g1="G" g2="Y,Yacute,Ydieresis" k="9" />
<hkern g1="G" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="3" />
<hkern g1="G" g2="X" k="3" />
<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="54" />
<hkern g1="K" g2="Y,Yacute,Ydieresis" k="21" />
<hkern g1="K" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="26" />
<hkern g1="K" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="20" />
<hkern g1="K" g2="t" k="39" />
<hkern g1="K" g2="w" k="40" />
<hkern g1="K" g2="v" k="60" />
<hkern g1="K" g2="y,yacute,ydieresis" k="60" />
<hkern g1="K" g2="hyphen,periodcentered,endash,emdash" k="50" />
<hkern g1="K" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="17" />
<hkern g1="K" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="34" />
<hkern g1="K" g2="x" k="26" />
<hkern g1="L" g2="question" k="114" />
<hkern g1="L" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="122" />
<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="34" />
<hkern g1="L" g2="asterisk" k="174" />
<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="27" />
<hkern g1="L" g2="T" k="100" />
<hkern g1="L" g2="W" k="66" />
<hkern g1="L" g2="V" k="90" />
<hkern g1="L" g2="Y,Yacute,Ydieresis" k="123" />
<hkern g1="L" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="14" />
<hkern g1="L" g2="t" k="33" />
<hkern g1="L" g2="w" k="37" />
<hkern g1="L" g2="v" k="57" />
<hkern g1="L" g2="y,yacute,ydieresis" k="57" />
<hkern g1="L" g2="ampersand" k="7" />
<hkern g1="L" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="14" />
<hkern g1="L" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="21" />
<hkern g1="P" g2="J" k="109" />
<hkern g1="P" g2="Y,Yacute,Ydieresis" k="3" />
<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="77" />
<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="94" />
<hkern g1="P" g2="X" k="9" />
<hkern g1="P" g2="ampersand" k="26" />
<hkern g1="P" g2="hyphen,periodcentered,endash,emdash" k="34" />
<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" />
<hkern g1="P" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="13" />
<hkern g1="R" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="3" />
<hkern g1="R" g2="T" k="10" />
<hkern g1="R" g2="V" k="10" />
<hkern g1="R" g2="Y,Yacute,Ydieresis" k="16" />
<hkern g1="R" g2="ampersand" k="3" />
<hkern g1="R" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" />
<hkern g1="R" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="30" />
<hkern g1="R" g2="s" k="6" />
<hkern g1="S" g2="T" k="6" />
<hkern g1="S" g2="Y,Yacute,Ydieresis" k="10" />
<hkern g1="S" g2="t" k="17" />
<hkern g1="S" g2="w" k="3" />
<hkern g1="S" g2="v" k="6" />
<hkern g1="S" g2="y,yacute,ydieresis" k="6" />
<hkern g1="S" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="10" />
<hkern g1="S" g2="x" k="13" />
<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="27" />
<hkern g1="T" g2="J" k="83" />
<hkern g1="T" g2="S" k="3" />
<hkern g1="T" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="31" />
<hkern g1="T" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="85" />
<hkern g1="T" g2="w" k="56" />
<hkern g1="T" g2="v" k="56" />
<hkern g1="T" g2="y,yacute,ydieresis" k="56" />
<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="67" />
<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="93" />
<hkern g1="T" g2="ampersand" k="57" />
<hkern g1="T" g2="hyphen,periodcentered,endash,emdash" k="60" />
<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="95" />
<hkern g1="T" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="115" />
<hkern g1="T" g2="x" k="66" />
<hkern g1="T" g2="s" k="91" />
<hkern g1="T" g2="colon,semicolon" k="50" />
<hkern g1="T" g2="m,n,p,r,z,ntilde" k="85" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="12" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="26" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="30" />
<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" />
<hkern g1="V" g2="J" k="93" />
<hkern g1="V" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="23" />
<hkern g1="V" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="42" />
<hkern g1="V" g2="t" k="13" />
<hkern g1="V" g2="w" k="6" />
<hkern g1="V" g2="v" k="13" />
<hkern g1="V" g2="y,yacute,ydieresis" k="6" />
<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="54" />
<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="90" />
<hkern g1="V" g2="ampersand" k="29" />
<hkern g1="V" g2="hyphen,periodcentered,endash,emdash" k="53" />
<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="63" />
<hkern g1="V" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="60" />
<hkern g1="V" g2="x" k="23" />
<hkern g1="V" g2="s" k="39" />
<hkern g1="V" g2="m,n,p,r,z,ntilde" k="42" />
<hkern g1="W" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" />
<hkern g1="W" g2="J" k="38" />
<hkern g1="W" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="13" />
<hkern g1="W" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="30" />
<hkern g1="W" g2="t" k="13" />
<hkern g1="W" g2="v" k="3" />
<hkern g1="W" g2="y,yacute,ydieresis" k="3" />
<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="47" />
<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="67" />
<hkern g1="W" g2="ampersand" k="20" />
<hkern g1="W" g2="hyphen,periodcentered,endash,emdash" k="33" />
<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="40" />
<hkern g1="W" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="40" />
<hkern g1="W" g2="x" k="23" />
<hkern g1="W" g2="s" k="19" />
<hkern g1="W" g2="m,n,p,r,z,ntilde" k="30" />
<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="40" />
<hkern g1="Y,Yacute,Ydieresis" g2="J" k="113" />
<hkern g1="Y,Yacute,Ydieresis" g2="S" k="20" />
<hkern g1="Y,Yacute,Ydieresis" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="49" />
<hkern g1="Y,Yacute,Ydieresis" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="90" />
<hkern g1="Y,Yacute,Ydieresis" g2="t" k="26" />
<hkern g1="Y,Yacute,Ydieresis" g2="w" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="v" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="63" />
<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="90" />
<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,periodcentered,endash,emdash" k="116" />
<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="121" />
<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="127" />
<hkern g1="Y,Yacute,Ydieresis" g2="x" k="73" />
<hkern g1="Y,Yacute,Ydieresis" g2="s" k="100" />
<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="59" />
<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,z,ntilde" k="90" />
<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="17" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="question" k="36" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="6" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="T" k="108" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="W" k="43" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="V" k="66" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="Y,Yacute,Ydieresis" k="110" />
<hkern g1="ampersand" g2="T" k="74" />
<hkern g1="ampersand" g2="W" k="48" />
<hkern g1="ampersand" g2="V" k="50" />
<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="91" />
<hkern g1="asterisk" g2="J" k="116" />
<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="101" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="question" k="46" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="10" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="T" k="115" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="W" k="40" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="V" k="60" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="Y,Yacute,Ydieresis" k="124" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="7" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="37" />
<hkern g1="c,cent,ccedilla" g2="question" k="23" />
<hkern g1="c,cent,ccedilla" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="3" />
<hkern g1="c,cent,ccedilla" g2="T" k="81" />
<hkern g1="c,cent,ccedilla" g2="W" k="23" />
<hkern g1="c,cent,ccedilla" g2="V" k="36" />
<hkern g1="c,cent,ccedilla" g2="Y,Yacute,Ydieresis" k="63" />
<hkern g1="colon,semicolon" g2="T" k="50" />
<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="59" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="question" k="36" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="3" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="17" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="101" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="40" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="53" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="110" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="7" />
<hkern g1="eth" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="7" />
<hkern g1="f" g2="question" k="-57" />
<hkern g1="f" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="-67" />
<hkern g1="f" g2="asterisk" k="-67" />
<hkern g1="f" g2="S" k="-23" />
<hkern g1="f" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="-40" />
<hkern g1="f" g2="T" k="-40" />
<hkern g1="f" g2="W" k="-63" />
<hkern g1="f" g2="V" k="-63" />
<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-56" />
<hkern g1="f" g2="Z" k="-40" />
<hkern g1="f" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="43" />
<hkern g1="f" g2="X" k="-40" />
<hkern g1="f" g2="ampersand" k="3" />
<hkern g1="f" g2="exclam,B,D,E,F,H,I,K,L,M,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde" k="-40" />
<hkern g1="f" g2="parenright,bracketright,braceright" k="-74" />
<hkern g1="g,j,q" g2="question" k="23" />
<hkern g1="g,j,q" g2="T" k="85" />
<hkern g1="g,j,q" g2="W" k="30" />
<hkern g1="g,j,q" g2="V" k="42" />
<hkern g1="g,j,q" g2="Y,Yacute,Ydieresis" k="90" />
<hkern g1="g,j,q" g2="j" k="-46" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="W" k="33" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="V" k="53" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="Y,Yacute,Ydieresis" k="109" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="X" k="43" />
<hkern g1="k" g2="T" k="69" />
<hkern g1="k" g2="W" k="23" />
<hkern g1="k" g2="V" k="23" />
<hkern g1="k" g2="Y,Yacute,Ydieresis" k="66" />
<hkern g1="k" g2="bullet" k="27" />
<hkern g1="k" g2="hyphen,periodcentered,endash,emdash" k="27" />
<hkern g1="k" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="3" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="76" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="30" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="T" k="93" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="W" k="67" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="V" k="87" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="Y,Yacute,Ydieresis" k="90" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="23" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="t" k="23" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="w" k="44" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="v" k="67" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="y,yacute,ydieresis" k="57" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="7" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="j" k="-40" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="seven" k="66" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="one" k="78" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="zero,six" k="31" />
<hkern g1="questiondown" g2="j" k="-160" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="3" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="J" k="92" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="104" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="76" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="s" k="30" />
<hkern g1="r" g2="T" k="48" />
<hkern g1="r" g2="W" k="6" />
<hkern g1="r" g2="V" k="23" />
<hkern g1="r" g2="Y,Yacute,Ydieresis" k="50" />
<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="83" />
<hkern g1="r" g2="X" k="9" />
<hkern g1="s" g2="question" k="43" />
<hkern g1="s" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="20" />
<hkern g1="s" g2="T" k="88" />
<hkern g1="s" g2="W" k="39" />
<hkern g1="s" g2="V" k="43" />
<hkern g1="s" g2="Y,Yacute,Ydieresis" k="93" />
<hkern g1="s" g2="X" k="3" />
<hkern g1="t" g2="T" k="52" />
<hkern g1="t" g2="W" k="13" />
<hkern g1="t" g2="V" k="26" />
<hkern g1="t" g2="Y,Yacute,Ydieresis" k="33" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="question" k="23" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="T" k="85" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="W" k="30" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="V" k="42" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="90" />
<hkern g1="v" g2="T" k="56" />
<hkern g1="v" g2="W" k="3" />
<hkern g1="v" g2="V" k="13" />
<hkern g1="v" g2="Y,Yacute,Ydieresis" k="60" />
<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="20" />
<hkern g1="v" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="67" />
<hkern g1="v" g2="X" k="37" />
<hkern g1="w" g2="T" k="56" />
<hkern g1="w" g2="V" k="6" />
<hkern g1="w" g2="Y,Yacute,Ydieresis" k="60" />
<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="17" />
<hkern g1="w" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="44" />
<hkern g1="w" g2="X" k="44" />
<hkern g1="y,yacute,ydieresis" g2="question" k="3" />
<hkern g1="y,yacute,ydieresis" g2="T" k="56" />
<hkern g1="y,yacute,ydieresis" g2="W" k="3" />
<hkern g1="y,yacute,ydieresis" g2="V" k="6" />
<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="60" />
<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="20" />
<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="57" />
<hkern g1="y,yacute,ydieresis" g2="X" k="37" />
<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" />
<hkern g1="X" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="30" />
<hkern g1="X" g2="t" k="30" />
<hkern g1="X" g2="w" k="44" />
<hkern g1="X" g2="v" k="37" />
<hkern g1="X" g2="y,yacute,ydieresis" k="37" />
<hkern g1="X" g2="hyphen,periodcentered,endash,emdash" k="43" />
<hkern g1="zero,nine" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="31" />
<hkern g1="seven" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="97" />
<hkern g1="x" g2="T" k="66" />
<hkern g1="x" g2="W" k="23" />
<hkern g1="x" g2="V" k="23" />
<hkern g1="x" g2="Y,Yacute,Ydieresis" k="73" />
<hkern g1="x" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" />
<hkern g1="parenleft,bracketleft,braceleft" g2="j" k="-110" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 71 KiB

View File

@ -0,0 +1,555 @@
<?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="proxima_nova_ltsemibold" horiz-adv-x="673" >
<font-face units-per-em="1000" ascent="790" descent="-210" />
<missing-glyph horiz-adv-x="257" />
<glyph unicode="&#xfb01;" horiz-adv-x="549" d="M13 391v92h80v27q0 79 42 123t111 44q51 0 84 -19l-23 -78q-16 11 -42 11q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98v-391h-105v391h-80zM363 607q0 27 19.5 46t45.5 19q27 0 46 -19t19 -46t-19 -46t-46 -19q-26 0 -45.5 19t-19.5 46zM376 0v483h105v-483h-105z" />
<glyph unicode="&#xfb02;" horiz-adv-x="549" d="M13 391v92h80v27q0 79 42 123t111 44q51 0 84 -19l-23 -78q-16 11 -42 11q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98v-391h-105v391h-80zM376 0v667h105v-667h-105z" />
<glyph unicode="&#xfb03;" horiz-adv-x="858" d="M13 391v92h80v27q0 78 41.5 122.5t111.5 44.5q75 0 116 -42l-41 -65q-23 21 -56 21q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98v-391h-105v391h-80zM321 391v92h80v27q0 79 42 123t111 44q51 0 84 -19l-23 -78q-16 11 -42 11q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98 v-391h-105v391h-80zM672 607q0 27 19.5 46t45.5 19q27 0 46 -19t19 -46t-19 -46t-46 -19q-26 0 -45.5 19t-19.5 46zM685 0v483h105v-483h-105z" />
<glyph unicode="&#xfb04;" horiz-adv-x="858" d="M13 391v92h80v27q0 78 41.5 122.5t111.5 44.5q75 0 116 -42l-41 -65q-23 21 -56 21q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98v-391h-105v391h-80zM321 391v92h80v27q0 79 42 123t111 44q51 0 84 -19l-23 -78q-16 11 -42 11q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98 v-391h-105v391h-80zM685 0v667h105v-667h-105z" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="0" />
<glyph horiz-adv-x="333" />
<glyph unicode="&#xd;" horiz-adv-x="0" />
<glyph unicode=" " horiz-adv-x="257" />
<glyph unicode="&#x09;" horiz-adv-x="257" />
<glyph unicode="&#xa0;" horiz-adv-x="257" />
<glyph unicode="!" horiz-adv-x="245" d="M53 59q0 29 20.5 49.5t48.5 20.5t49 -20.5t21 -49.5q0 -28 -21 -48.5t-49 -20.5t-48.5 20.5t-20.5 48.5zM58 667h128l-18 -463h-91z" />
<glyph unicode="&#x22;" horiz-adv-x="379" d="M48 618q0 24 17 41.5t42 17.5q24 0 41.5 -17.5t17.5 -41.5l-35 -227h-48q-35 210 -35 227zM214 618q0 24 17 41.5t42 17.5q24 0 41 -17.5t17 -41.5l-35 -227h-47q-35 210 -35 227z" />
<glyph unicode="#" horiz-adv-x="606" d="M19 174l22 69h102l59 180h-102l21 68h105l58 176h80l-58 -176h101l58 176h80l-59 -176h101l-20 -68h-104l-60 -180h105l-21 -69h-107l-58 -174h-80l59 174h-102l-58 -174h-80l58 174h-100zM223 243h100l60 180h-101z" />
<glyph unicode="$" horiz-adv-x="605" d="M35 94l65 90q69 -74 168 -89v193q-47 12 -78 23.5t-65 33t-51.5 56t-17.5 81.5q0 77 58 131t154 62v93h80v-94q121 -13 201 -90l-67 -87q-55 54 -134 70v-172q37 -10 63 -19t57.5 -25.5t50.5 -36t32 -50.5t13 -70q0 -82 -54.5 -138.5t-161.5 -65.5v-90h-80v90 q-149 11 -233 104zM176 490q0 -48 92 -74v156q-43 -4 -67.5 -26.5t-24.5 -55.5zM348 94q49 8 73 33t24 56t-25 50.5t-72 33.5v-173z" />
<glyph unicode="%" horiz-adv-x="746" d="M28 510q0 72 46 119.5t119 47.5q74 0 120.5 -47.5t46.5 -119.5q0 -71 -46.5 -117.5t-120.5 -46.5q-73 0 -119 46.5t-46 117.5zM105 510q0 -43 25 -70.5t63 -27.5q39 0 64 27.5t25 70.5q0 45 -25 72.5t-64 27.5t-63.5 -27.5t-24.5 -72.5zM129 0l426 667h67l-427 -667h-66z M387 152q0 72 46 119.5t119 47.5t119.5 -48t46.5 -119t-46.5 -117.5t-119.5 -46.5t-119 46.5t-46 117.5zM464 152q0 -43 24.5 -70.5t63.5 -27.5t64 27.5t25 70.5q0 45 -25 72.5t-64 27.5t-63.5 -27.5t-24.5 -72.5z" />
<glyph unicode="&#x26;" horiz-adv-x="644" d="M29 178q0 70 38.5 114.5t106.5 80.5q-47 84 -47 146q0 68 51.5 113t129.5 45q71 0 118 -37t47 -100q0 -36 -13 -65t-40.5 -51.5t-51 -36t-62.5 -32.5q29 -40 66 -82q37 -45 66 -77q44 69 66 139l86 -39q-47 -103 -93 -165q55 -59 130 -131h-137q-22 19 -59 58 q-83 -70 -187 -70q-94 0 -154.5 49.5t-60.5 140.5zM141 187q0 -53 34 -84t82 -31q60 0 115 47q-59 64 -89 99.5t-67 88.5q-75 -49 -75 -120zM233 517q0 -43 33 -101q56 26 85 53t29 66q0 30 -19 47t-48 17q-34 0 -57 -23t-23 -59z" />
<glyph unicode="'" horiz-adv-x="214" d="M48 618q0 24 17 41.5t42 17.5q24 0 41.5 -17.5t17.5 -41.5l-35 -227h-48q-35 210 -35 227z" />
<glyph unicode="(" horiz-adv-x="276" d="M42 243q0 120 40 237.5t111 204.5l65 -49q-52 -98 -77 -189t-25 -204t25 -204t77 -188l-65 -50q-71 86 -111 203.5t-40 238.5z" />
<glyph unicode=")" horiz-adv-x="276" d="M17 -149q53 97 78 188t25 204t-25 204t-78 189l65 49q71 -87 111.5 -204t40.5 -238t-40.5 -238.5t-111.5 -203.5z" />
<glyph unicode="*" horiz-adv-x="346" d="M29 475l99 51l-99 51l27 48l94 -60l-5 112h56l-6 -112l94 60l28 -48l-99 -51l99 -51l-28 -48l-94 61l6 -112h-56l5 112l-94 -61z" />
<glyph unicode="+" horiz-adv-x="502" d="M29 303v68h185v200h74v-200h185v-68h-185v-207h-74v207h-185z" />
<glyph unicode="," horiz-adv-x="245" d="M52 60q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5z" />
<glyph unicode="-" horiz-adv-x="300" d="M30 197v90h240v-90h-240z" />
<glyph unicode="." horiz-adv-x="245" d="M52 59q0 29 21 49.5t49 20.5t49 -20.5t21 -49.5t-21 -49.5t-49 -20.5t-49 20.5t-21 49.5z" />
<glyph unicode="/" horiz-adv-x="315" d="M0 -20l237 707h78l-237 -707h-78z" />
<glyph unicode="0" horiz-adv-x="616" d="M41 333q0 65 16 125t47 109.5t84 79.5t120 30t120 -30t84 -79.5t47 -109.5t16 -125t-16 -125t-47 -110t-84 -80t-120 -30t-120 30t-84 80t-47 110t-16 125zM160 333q0 -105 36 -173t112 -68t112 68t36 173q0 67 -13.5 119t-48 86.5t-86.5 34.5t-86.5 -34.5t-48 -86.5 t-13.5 -119z" />
<glyph unicode="1" horiz-adv-x="380" d="M15 473l192 194h102v-667h-117v515l-109 -113z" />
<glyph unicode="2" horiz-adv-x="595" d="M41 570q43 52 108.5 79.5t137.5 27.5q102 0 172 -55t70 -151q0 -86 -72 -171t-220 -197h296v-103h-483v92q209 158 284.5 234.5t75.5 144.5q0 49 -35.5 75.5t-85.5 26.5q-110 0 -180 -80z" />
<glyph unicode="3" horiz-adv-x="574" d="M24 96l63 77q32 -37 82 -59t103 -22q65 0 102 27.5t37 74.5q0 94 -148 94q-67 0 -77 -1v105q12 -1 77 -1q62 0 99.5 22t37.5 66q0 45 -38 69.5t-97 24.5q-98 0 -172 -74l-60 73q89 105 243 105q109 0 175 -48.5t66 -131.5q0 -62 -43.5 -102.5t-101.5 -50.5q57 -5 106 -48 t49 -114q0 -86 -68.5 -140t-182.5 -54q-85 0 -150.5 30t-101.5 78z" />
<glyph unicode="4" horiz-adv-x="580" d="M28 151v94l274 422h161v-413h89v-103h-89v-151h-117v151h-318zM143 254h203v308z" />
<glyph unicode="5" horiz-adv-x="600" d="M56 91l67 80q70 -79 180 -79q62 0 99.5 33.5t37.5 83.5q0 54 -36.5 86.5t-97.5 32.5q-85 0 -146 -58l-83 24v373h437v-103h-320v-193q58 58 151 58q88 0 150.5 -58.5t62.5 -156.5q0 -103 -70.5 -164.5t-183.5 -61.5q-161 0 -248 103z" />
<glyph unicode="6" horiz-adv-x="601" d="M41 332q0 151 77 248t217 97q116 0 192 -74l-55 -89q-56 59 -137 59q-80 0 -128 -64t-48 -156q0 -13 1 -19q25 37 74 65t105 28q95 0 159 -56.5t64 -158.5q0 -95 -68 -159.5t-178 -64.5q-71 0 -125 27.5t-86 75.5t-48 108.5t-16 132.5zM161 248q6 -64 42 -110t107 -46 q62 0 98 35.5t36 80.5q0 58 -39 88.5t-98 30.5q-42 0 -81 -21.5t-65 -57.5z" />
<glyph unicode="7" horiz-adv-x="532" d="M27 564v103h481v-81l-259 -586h-128l252 564h-346z" />
<glyph unicode="8" horiz-adv-x="595" d="M42 171q0 61 42.5 106t107.5 67q-62 20 -100.5 59t-38.5 99q0 44 21.5 79t57 55t78 30.5t88.5 10.5t88 -10.5t78 -30.5t57.5 -55t21.5 -79q0 -113 -140 -158q65 -22 107.5 -67t42.5 -106q0 -86 -73.5 -134.5t-181.5 -48.5t-182 48.5t-74 134.5zM160 186q0 -42 39.5 -68 t98.5 -26q57 0 97 26t40 68q0 45 -46.5 72.5t-90.5 32.5q-26 -3 -55 -13.5t-56 -35t-27 -56.5zM171 484q0 -29 25 -50.5t50 -30t52 -13.5q27 5 52 13.5t49.5 30t24.5 50.5q0 41 -35.5 65t-90.5 24q-56 0 -91.5 -24t-35.5 -65z" />
<glyph unicode="9" horiz-adv-x="601" d="M38 454q0 95 68.5 159.5t177.5 64.5q94 0 157.5 -48.5t90.5 -124t27 -172.5q0 -150 -77 -247t-217 -97q-117 0 -191 74l54 88q56 -58 137 -58q85 0 130.5 64.5t45.5 154.5v20q-26 -37 -75 -65.5t-104 -28.5q-95 0 -159.5 57t-64.5 159zM157 458q0 -58 39 -88.5t97 -30.5 q43 0 82 21t64 57q-5 63 -41.5 110t-107.5 47q-61 0 -97 -36t-36 -80z" />
<glyph unicode=":" horiz-adv-x="245" d="M52 59q0 29 21 49.5t49 20.5t49 -20.5t21 -49.5t-21 -49.5t-49 -20.5t-49 20.5t-21 49.5zM52 420q0 28 21 49t49 21t49 -21t21 -49t-21 -49t-49 -21t-49 21t-21 49z" />
<glyph unicode=";" horiz-adv-x="245" d="M52 63q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5zM52 420q0 28 21 49t49 21t49 -21t21 -49t-21 -49t-49 -21t-49 21t-21 49z" />
<glyph unicode="&#x3c;" horiz-adv-x="502" d="M29 297v75l444 208v-81l-365 -165l365 -164v-80z" />
<glyph unicode="=" horiz-adv-x="502" d="M29 205v67h444v-67h-444zM29 395v68h444v-68h-444z" />
<glyph unicode="&#x3e;" horiz-adv-x="502" d="M29 90v80l364 164l-364 165v81l444 -208v-75z" />
<glyph unicode="?" horiz-adv-x="458" d="M13 578q81 99 218 99q93 0 148 -44t55 -113q0 -41 -18.5 -73.5t-45 -53t-52.5 -38.5t-44.5 -39.5t-18.5 -45.5q0 -26 22 -45l-88 -29q-36 34 -36 85q0 41 25 73.5t55.5 50.5t55.5 43t25 53q0 31 -24.5 51.5t-70.5 20.5q-82 0 -139 -70zM155 59q0 29 20.5 49.5t49.5 20.5 t49.5 -20.5t20.5 -49.5t-20.5 -49.5t-49.5 -20.5t-49.5 20.5t-20.5 49.5z" />
<glyph unicode="@" horiz-adv-x="783" d="M35 244q0 159 120 276.5t277 117.5q139 0 227 -90t88 -221q0 -114 -58 -178t-129 -64q-42 0 -66.5 22t-28.5 55l-1 6q-27 -37 -67 -60t-83 -23q-70 0 -112 46t-42 120q0 100 70.5 173.5t159.5 73.5q90 0 126 -71l12 56h94l-54 -255q-2 -12 -2 -23q0 -23 11.5 -35.5 t29.5 -12.5q36 0 68 43t32 127q0 122 -76.5 198t-202.5 76q-143 0 -249.5 -107t-106.5 -248q0 -120 80.5 -200t203.5 -80q97 0 184 55l20 -28q-98 -63 -208 -63q-136 0 -226.5 90.5t-90.5 223.5zM257 258q0 -44 24.5 -71t66.5 -27q73 0 127 76l27 126q-10 24 -33 42.5 t-58 18.5q-64 0 -109 -50.5t-45 -114.5z" />
<glyph unicode="A" d="M1 0l262 667h146l262 -667h-133l-49 128h-306l-49 -128h-133zM216 231h240l-120 318z" />
<glyph unicode="B" horiz-adv-x="648" d="M71 0v667h328q89 0 139.5 -48.5t50.5 -121.5q0 -60 -33.5 -101.5t-82.5 -51.5q54 -8 91.5 -55.5t37.5 -108.5q0 -80 -51.5 -130t-142.5 -50h-337zM188 103h192q48 0 75 24.5t27 68.5q0 39 -27 65.5t-75 26.5h-192v-185zM188 391h187q44 0 69 24t25 62q0 39 -25 63t-69 24 h-187v-173z" />
<glyph unicode="C" horiz-adv-x="682" d="M41 333q0 152 100 248.5t250 96.5q174 0 268 -150l-100 -51q-25 43 -70.5 70t-97.5 27q-99 0 -164.5 -68t-65.5 -173t65.5 -173t164.5 -68q53 0 98 27t70 70l100 -51q-96 -150 -268 -150q-150 0 -250 96.5t-100 248.5z" />
<glyph unicode="D" horiz-adv-x="710" d="M71 0v667h248q155 0 252 -93t97 -241q0 -147 -96.5 -240t-252.5 -93h-248zM188 103h131q105 0 167 66t62 164q0 101 -60.5 166t-168.5 65h-131v-461z" />
<glyph unicode="E" horiz-adv-x="577" d="M71 0v667h457v-103h-340v-173h333v-103h-333v-185h340v-103h-457z" />
<glyph unicode="F" horiz-adv-x="562" d="M71 0v667h457v-103h-340v-173h333v-103h-333v-288h-117z" />
<glyph unicode="G" horiz-adv-x="717" d="M41 333q0 154 101 249.5t249 95.5q172 0 269 -139l-96 -54q-28 39 -73.5 64t-99.5 25q-99 0 -164.5 -68t-65.5 -173t65.5 -173.5t164.5 -68.5q47 0 89.5 18t68.5 42v104h-199v103h316v-250q-109 -121 -275 -121q-148 0 -249 96t-101 250z" />
<glyph unicode="H" horiz-adv-x="723" d="M71 0v667h117v-273h347v273h117v-667h-117v291h-347v-291h-117z" />
<glyph unicode="I" horiz-adv-x="259" d="M71 0v667h117v-667h-117z" />
<glyph unicode="J" horiz-adv-x="481" d="M8 58l54 89q51 -55 114 -55q54 0 85.5 33t31.5 88v454h117v-456q0 -110 -62 -166.5t-163 -56.5q-111 0 -177 70z" />
<glyph unicode="K" horiz-adv-x="621" d="M71 0v667h117v-318l261 318h145l-271 -315l291 -352h-144l-224 281l-58 -68v-213h-117z" />
<glyph unicode="L" horiz-adv-x="517" d="M71 0v667h117v-564h294v-103h-411z" />
<glyph unicode="M" horiz-adv-x="835" d="M71 0v667h165l181 -439l182 439h165v-667h-117v495l-205 -495h-50l-204 495v-495h-117z" />
<glyph unicode="N" horiz-adv-x="720" d="M71 0v667h120l341 -463v463h117v-667h-113l-348 476v-476h-117z" />
<glyph unicode="O" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5t-245 97.5t-96 247.5zM161 333q0 -105 60.5 -173t160.5 -68q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173z" />
<glyph unicode="P" horiz-adv-x="608" d="M71 0v667h293q101 0 159.5 -60t58.5 -149q0 -88 -58.5 -148.5t-159.5 -60.5h-176v-249h-117zM188 352h160q50 0 82 29t32 77t-32 77t-82 29h-160v-212z" />
<glyph unicode="Q" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5t245 -97.5t96 -247.5q0 -143 -89 -240l55 -62l-81 -68l-58 65q-74 -40 -168 -40q-149 0 -245 97.5t-96 247.5zM161 333q0 -105 60.5 -173t160.5 -68q51 0 94 20l-82 94l81 67l82 -94q46 63 46 154q0 105 -61 173t-160 68 q-100 0 -160.5 -68t-60.5 -173z" />
<glyph unicode="R" horiz-adv-x="628" d="M71 0v667h293q98 0 158 -58t60 -151q0 -84 -46 -134.5t-112 -61.5l163 -262h-135l-148 249h-116v-249h-117zM188 352h160q50 0 82 29t32 77t-32 77t-82 29h-160v-212z" />
<glyph unicode="S" horiz-adv-x="594" d="M28 94l65 90q86 -92 211 -92q67 0 100.5 27t33.5 64q0 38 -40 60.5t-97 35.5t-114.5 31t-97.5 61t-40 111q0 84 67.5 139.5t175.5 55.5q154 0 250 -93l-67 -87q-76 76 -193 76q-52 0 -82.5 -22.5t-30.5 -60.5q0 -25 21.5 -42t55.5 -27.5t75.5 -20.5t83 -24.5t75.5 -35.5 t55.5 -58t21.5 -88q0 -90 -65 -148t-193 -58q-172 0 -271 106z" />
<glyph unicode="T" horiz-adv-x="577" d="M28 564v103h521v-103h-202v-564h-117v564h-202z" />
<glyph unicode="U" horiz-adv-x="719" d="M71 263v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74q-142 0 -215.5 74t-73.5 201z" />
<glyph unicode="V" d="M1 667h133l202 -540l202 540h133l-262 -667h-146z" />
<glyph unicode="W" horiz-adv-x="903" d="M6 667h131l130 -514l138 514h93l138 -514l129 514h131l-190 -667h-125l-130 492l-129 -492h-125z" />
<glyph unicode="X" horiz-adv-x="661" d="M3 0l250 342l-235 325h140l172 -245l171 245h141l-234 -324l249 -343h-140l-187 261l-187 -261h-140z" />
<glyph unicode="Y" horiz-adv-x="637" d="M1 667h134l184 -286l182 286h134l-258 -390v-277h-117v277z" />
<glyph unicode="Z" horiz-adv-x="589" d="M44 0v95l341 469h-341v103h493v-95l-341 -469h348v-103h-500z" />
<glyph unicode="[" horiz-adv-x="264" d="M44 -190v868h203v-72h-126v-724h126v-72h-203z" />
<glyph unicode="\" horiz-adv-x="315" d="M0 687h78l237 -707h-78z" />
<glyph unicode="]" horiz-adv-x="264" d="M17 -118h126v724h-126v72h203v-868h-203v72z" />
<glyph unicode="^" horiz-adv-x="437" d="M19 333l161 334h78l160 -334h-80l-120 261l-119 -261h-80z" />
<glyph unicode="_" horiz-adv-x="564" d="M-3 -40h570v-72h-570v72z" />
<glyph unicode="`" horiz-adv-x="240" d="M0 700h100l140 -144h-75z" />
<glyph unicode="a" horiz-adv-x="536" d="M39 148q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5zM145 146q0 -39 29 -62.5t74 -23.5q79 0 115 50v73q-36 50 -115 50 q-45 0 -74 -24t-29 -63z" />
<glyph unicode="b" horiz-adv-x="581" d="M68 0v667h105v-251q59 79 155 79q94 0 154 -69.5t60 -184.5q0 -117 -60 -185t-154 -68q-95 0 -155 78v-66h-105zM173 145q17 -27 52.5 -45.5t71.5 -18.5q62 0 99.5 44.5t37.5 115.5t-37.5 116t-99.5 45q-36 0 -71 -19t-53 -47v-191z" />
<glyph unicode="c" horiz-adv-x="497" d="M38 242q0 110 70 181.5t180 71.5q121 0 185 -86l-69 -64q-40 57 -111 57q-66 0 -106 -44.5t-40 -115.5t40 -116t106 -45q69 0 111 57l69 -64q-64 -86 -185 -86q-110 0 -180 71.5t-70 182.5z" />
<glyph unicode="d" horiz-adv-x="581" d="M38 241q0 116 60 185t155 69t155 -79v251h105v-667h-105v66q-60 -78 -155 -78t-155 68t-60 185zM147 241q0 -71 37 -115.5t99 -44.5q37 0 72 18t53 46v192q-18 28 -53 46.5t-72 18.5q-62 0 -99 -45t-37 -116z" />
<glyph unicode="e" horiz-adv-x="557" d="M38 242q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70q-110 0 -181.5 70.5t-71.5 183.5zM147 281h272q-2 50 -36.5 89t-99.5 39q-62 0 -97 -38.5t-39 -89.5z" />
<glyph unicode="f" horiz-adv-x="308" d="M13 391v92h80v27q0 78 41.5 122.5t111.5 44.5q75 0 116 -42l-41 -65q-23 21 -56 21q-31 0 -49 -20.5t-18 -60.5v-27h98v-92h-98v-391h-105v391h-80z" />
<glyph unicode="g" horiz-adv-x="580" d="M38 247q0 115 59.5 181.5t154.5 66.5t155 -79v67h105v-458q0 -62 -21.5 -107.5t-58.5 -69t-78.5 -34t-89.5 -10.5q-123 0 -202 72l49 76q54 -62 153 -62q60 0 101.5 31.5t41.5 99.5v58q-62 -80 -155 -80q-95 0 -154.5 66t-59.5 182zM147 247q0 -70 37 -112.5t99 -42.5 q36 0 71 19t53 46v180q-18 27 -53 46t-71 19q-62 0 -99 -42.5t-37 -112.5z" />
<glyph unicode="h" horiz-adv-x="568" d="M68 0v667h105v-250q27 32 72.5 55t98.5 23q156 0 156 -153v-342h-105v304q0 53 -25.5 75.5t-72.5 22.5q-37 0 -70 -19t-54 -46v-337h-105z" />
<glyph unicode="i" horiz-adv-x="241" d="M55 607q0 27 19.5 46t45.5 19q27 0 46 -19t19 -46t-19 -46t-46 -19q-26 0 -45.5 19t-19.5 46zM68 0v483h105v-483h-105z" />
<glyph unicode="j" horiz-adv-x="241" d="M-101 -161l31 78q30 -27 67 -27q32 0 51.5 20.5t19.5 61.5v511h105v-511q0 -79 -41 -123.5t-119 -44.5q-40 0 -64 8t-50 27zM55 607q0 27 19.5 46t45.5 19q27 0 46 -19t19 -46t-19 -46t-46 -19q-26 0 -45.5 19t-19.5 46z" />
<glyph unicode="k" horiz-adv-x="526" d="M68 0v667h105v-417l213 233h130l-201 -219l205 -264h-132l-148 199l-67 -69v-130h-105z" />
<glyph unicode="l" horiz-adv-x="241" d="M68 0v667h105v-667h-105z" />
<glyph unicode="m" horiz-adv-x="833" d="M68 0v483h105v-66q18 27 62.5 52.5t94.5 25.5q105 0 132 -89q23 36 68 62.5t96 26.5q139 0 139 -146v-349h-105v315q0 87 -79 87q-33 0 -64 -19t-48 -45v-338h-105v315q0 87 -80 87q-32 0 -62.5 -19t-48.5 -46v-337h-105z" />
<glyph unicode="n" horiz-adv-x="567" d="M68 0v483h105v-66q27 32 72 55t98 23q77 0 116.5 -40t39.5 -115v-340h-105v302q0 100 -97 100q-38 0 -71 -19t-53 -46v-337h-105z" />
<glyph unicode="o" horiz-adv-x="573" d="M38 242q0 107 68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73q-112 0 -180 73.5t-68 180.5zM147 242q0 -68 37.5 -114.5t101.5 -46.5q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5z" />
<glyph unicode="p" horiz-adv-x="578" d="M68 -184v667h105v-66q58 78 155 78q95 0 154.5 -68t59.5 -185t-59.5 -185.5t-154.5 -68.5q-96 0 -155 79v-251h-105zM173 146q18 -27 53 -46t71 -19q62 0 99 45t37 116t-37 115.5t-99 44.5q-36 0 -71 -19t-53 -46v-191z" />
<glyph unicode="q" horiz-adv-x="578" d="M36 242q0 117 59.5 185t154.5 68q96 0 155 -78v66h105v-667h-105v251q-59 -79 -155 -79q-95 0 -154.5 68.5t-59.5 185.5zM145 242q0 -71 37 -116t99 -45q36 0 71 19t53 46v191q-18 27 -53 46t-71 19q-62 0 -99 -44.5t-37 -115.5z" />
<glyph unicode="r" horiz-adv-x="347" d="M68 0v483h105v-71q28 36 70 59t87 23v-104q-14 3 -33 3q-33 0 -70.5 -19.5t-53.5 -44.5v-329h-105z" />
<glyph unicode="s" horiz-adv-x="472" d="M26 63l48 76q27 -28 73 -48t91 -20q46 0 70.5 18t24.5 47q0 26 -30 40.5t-73 23t-86 21t-73 44.5t-30 83q0 62 51 104.5t139 42.5q111 0 188 -68l-44 -74q-23 26 -61 42t-82 16q-41 0 -65.5 -16.5t-24.5 -42.5q0 -20 21.5 -32.5t54 -18.5t70.5 -16.5t70.5 -24.5t54 -45.5 t21.5 -76.5q0 -66 -53 -108t-148 -42q-130 0 -207 75z" />
<glyph unicode="t" horiz-adv-x="319" d="M9 391v92h80v132h105v-132h98v-92h-98v-253q0 -26 12 -41.5t34 -15.5q32 0 47 17l25 -79q-33 -31 -99 -31q-61 0 -92.5 32t-31.5 92v279h-80z" />
<glyph unicode="u" horiz-adv-x="567" d="M68 141v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483h-105v64q-68 -76 -171 -76q-155 0 -155 153z" />
<glyph unicode="v" horiz-adv-x="503" d="M-2 483h112l141 -362l141 362h113l-197 -483h-113z" />
<glyph unicode="w" horiz-adv-x="754" d="M5 483h109l102 -351l115 351h92l115 -351l102 351h109l-150 -483h-110l-112 354l-112 -354h-110z" />
<glyph unicode="x" horiz-adv-x="496" d="M5 0l177 248l-167 235h118l115 -164l114 164h118l-167 -235l178 -248h-118l-125 178l-126 -178h-117z" />
<glyph unicode="y" horiz-adv-x="503" d="M-2 483h112l141 -362l141 362h113l-233 -570q-43 -107 -166 -109q-33 0 -59 7l16 94q18 -8 40 -8q51 0 69 42l24 55z" />
<glyph unicode="z" horiz-adv-x="476" d="M46 0v79l239 312h-239v92h379v-77l-241 -315h245v-91h-383z" />
<glyph unicode="{" horiz-adv-x="276" d="M4 213v62q25 0 38.5 19.5t13.5 48.5v186q0 66 42.5 107.5t99.5 41.5h61v-72h-61q-27 0 -45.5 -21.5t-18.5 -55.5v-196q0 -69 -46 -89q46 -20 46 -89v-196q0 -33 18.5 -55t45.5 -22h61v-72h-61q-58 0 -100 41t-42 107v187q0 29 -13.5 48.5t-38.5 19.5z" />
<glyph unicode="|" horiz-adv-x="214" d="M71 -20v707h72v-707h-72z" />
<glyph unicode="}" horiz-adv-x="276" d="M17 -118h61q27 0 45.5 22t18.5 55v196q0 69 46 89q-46 20 -46 89v196q0 34 -18.5 55.5t-45.5 21.5h-61v72h61q57 0 99.5 -41.5t42.5 -107.5v-186q0 -29 13.5 -48.5t38.5 -19.5v-62q-25 0 -38.5 -19.5t-13.5 -48.5v-187q0 -66 -42 -107t-100 -41h-61v72z" />
<glyph unicode="~" horiz-adv-x="507" d="M26 425q5 51 13 89.5t23.5 75t43 56.5t65.5 20q43 0 70 -28.5t35.5 -63t23 -63t36.5 -28.5q56 0 71 184l73 -9q-4 -51 -12 -89.5t-23.5 -75t-43 -56.5t-65.5 -20q-43 0 -70 28.5t-35.5 62.5t-23 62.5t-36.5 28.5q-54 0 -71 -183z" />
<glyph unicode="&#xa1;" horiz-adv-x="245" d="M53 424q0 28 20.5 48.5t48.5 20.5t49 -20.5t21 -48.5t-21 -49t-49 -21t-48.5 20.5t-20.5 49.5zM59 -184l18 462h91l19 -462h-128z" />
<glyph unicode="&#xa2;" horiz-adv-x="497" d="M38 242q0 98 57.5 167t150.5 83v73h78v-72q95 -12 149 -84l-69 -64q-31 43 -80 54v-315q49 11 80 54l69 -64q-54 -72 -149 -84v-90h-78v91q-93 14 -150.5 82.5t-57.5 168.5zM147 242q0 -57 26.5 -98.5t72.5 -55.5v307q-46 -15 -72.5 -55.5t-26.5 -97.5z" />
<glyph unicode="&#xa3;" horiz-adv-x="536" d="M21 268v70h83q-18 23 -28.5 39t-20 42.5t-9.5 54.5q0 87 71 145t164 58q158 0 219 -117l-93 -55q-13 33 -44 54.5t-69 21.5q-51 0 -86 -30t-35 -79q0 -17 3 -32t11 -30.5t13.5 -23.5t18 -25t16.5 -23h147v-70h-116q3 -14 3 -29q0 -75 -70 -120q24 8 51 8q32 0 72 -18 t66 -18q60 0 90 38l47 -93q-47 -49 -142 -49q-47 0 -98 22.5t-82 22.5q-44 0 -117 -39l-40 82q119 55 119 137q0 28 -13 56h-131z" />
<glyph unicode="&#xa4;" horiz-adv-x="612" d="M25 552l63 62l76 -77q61 39 142 39q80 0 141 -39l76 77l63 -63l-75 -75q43 -63 43 -143q0 -81 -43 -144l75 -73l-63 -62l-76 74q-59 -39 -141 -39q-81 0 -143 40l-74 -75l-63 62l74 74q-42 64 -42 143q0 80 43 143zM164 333q0 -63 38 -106.5t104 -43.5t104 43.5t38 106.5 q0 62 -38 105t-104 43t-104 -43t-38 -105z" />
<glyph unicode="&#xa5;" horiz-adv-x="637" d="M1 667h134l184 -286l182 286h134l-214 -323h194v-67h-238v-92h238v-67h-238v-118h-117v118h-237v67h237v92h-237v67h192z" />
<glyph unicode="&#xa6;" horiz-adv-x="214" d="M71 -20v316h72v-316h-72zM71 371v316h72v-316h-72z" />
<glyph unicode="&#xa7;" horiz-adv-x="477" d="M28 -3l46 67q27 -29 69.5 -50t89.5 -21q45 0 72.5 18.5t27.5 51.5q0 25 -21.5 41t-54 23.5t-70.5 18.5t-70.5 24t-54 42.5t-21.5 72.5q0 48 30.5 80t74.5 46q-105 37 -105 125q0 60 52.5 100.5t137.5 40.5q120 0 187 -69l-43 -63q-52 57 -140 57q-42 0 -67.5 -17.5 t-25.5 -47.5q0 -26 30 -41t73 -23.5t86 -21.5t73 -45.5t30 -84.5q0 -87 -87 -128q87 -36 87 -122q0 -71 -55.5 -111.5t-145.5 -40.5q-121 0 -205 78zM142 299q0 -19 9 -32t29.5 -22.5t36 -14t45.5 -11.5q69 29 69 84q0 34 -26 52t-70 29q-51 -13 -72 -33.5t-21 -51.5z" />
<glyph unicode="&#xa8;" horiz-adv-x="285" d="M-21 608q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM188 608q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xa9;" horiz-adv-x="778" d="M44 334q0 143 101 244t244 101t244 -101t101 -244t-101 -244t-244 -101t-244 101.5t-101 243.5zM78 334q0 -128 91.5 -219.5t219.5 -91.5t219.5 91.5t91.5 219.5t-91.5 219.5t-219.5 91.5t-219.5 -91.5t-91.5 -219.5zM185 335q0 91 60.5 151t147.5 60q91 0 147 -66 l-29 -28q-42 57 -118 57q-69 0 -117.5 -49t-48.5 -125q0 -75 49 -125.5t117 -50.5q76 0 119 58l29 -28q-57 -67 -148 -67q-87 0 -147.5 61t-60.5 152z" />
<glyph unicode="&#xaa;" horiz-adv-x="382" d="M35 422q0 49 33.5 75.5t77.5 26.5q68 0 104 -40v46q0 27 -20.5 43t-52.5 16q-55 0 -95 -43l-31 50q56 52 138 52q61 0 99.5 -28t38.5 -91v-203h-77v33q-37 -41 -104 -41q-44 0 -77.5 27.5t-33.5 76.5zM112 422q0 -25 18.5 -40t46.5 -15q49 0 73 33v44q-24 32 -73 32 q-28 0 -46.5 -15t-18.5 -39z" />
<glyph unicode="&#xab;" horiz-adv-x="489" d="M30 243l160 177h99l-160 -177l160 -180h-99zM200 243l160 177h99l-160 -177l160 -180h-99z" />
<glyph unicode="&#xac;" horiz-adv-x="510" d="M29 395v68h444v-258h-70v190h-374z" />
<glyph unicode="&#xad;" horiz-adv-x="300" d="M30 197v90h240v-90h-240z" />
<glyph unicode="&#xae;" horiz-adv-x="494" d="M35 465q0 88 62 150t150 62q89 0 150.5 -61.5t61.5 -150.5q0 -88 -62 -150t-150 -62t-150 62t-62 150zM65 465q0 -75 53 -128.5t129 -53.5q75 0 128 53.5t53 128.5q0 76 -53 128.5t-128 52.5q-76 0 -129 -52.5t-53 -128.5zM166 343v243h99q32 0 55 -20.5t23 -53.5 q0 -35 -22.5 -53.5t-39.5 -18.5l65 -97h-41l-63 96h-43v-96h-33zM199 469h66q17 0 30.5 12.5t13.5 30.5q0 19 -13.5 32t-30.5 13h-66v-88z" />
<glyph unicode="&#xaf;" horiz-adv-x="363" d="M0 566v62h363v-62h-363z" />
<glyph unicode="&#xb0;" horiz-adv-x="302" d="M21 547q0 53 38 91.5t91 38.5q54 0 92 -38.5t38 -91.5q0 -54 -38 -91.5t-92 -37.5q-53 0 -91 37.5t-38 91.5zM82 547q0 -29 20 -49t48 -20q29 0 49.5 20.5t20.5 48.5q0 29 -21 49.5t-49 20.5t-48 -20.5t-20 -49.5z" />
<glyph unicode="&#xb1;" horiz-adv-x="502" d="M29 0v67h444v-67h-444zM29 325v67h185v201h74v-201h185v-67h-185v-208h-74v208h-185z" />
<glyph unicode="&#xb2;" horiz-adv-x="393" d="M41 762q55 65 155 65q66 0 109.5 -32t43.5 -90q0 -51 -44.5 -101.5t-139.5 -117.5h187v-65h-304v59q128 91 174.5 136t46.5 83q0 31 -21.5 47t-53.5 16q-34 0 -64 -15t-46 -36z" />
<glyph unicode="&#xb3;" horiz-adv-x="393" d="M36 478l41 52q45 -51 115 -51q39 0 60.5 15.5t21.5 41.5q0 57 -95 57q-37 0 -43 -1v65q8 -1 42 -1q89 0 89 53q0 25 -22.5 39t-57.5 14q-62 0 -107 -46l-39 48q58 63 154 63q70 0 111 -29.5t41 -78.5q0 -37 -26.5 -61.5t-62.5 -30.5q35 -3 65.5 -28t30.5 -68 q0 -52 -43.5 -84.5t-115.5 -32.5q-107 0 -159 64z" />
<glyph unicode="&#xb4;" horiz-adv-x="240" d="M0 556l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xb5;" horiz-adv-x="581" d="M68 -184v667h105v-304q0 -99 98 -99q37 0 70 18.5t53 45.5v339h105v-352q0 -23 11.5 -36.5t31.5 -13.5q9 0 19 2l7 -89q-20 -6 -50 -6q-97 0 -119 86q-25 -38 -62.5 -62t-80.5 -24q-60 0 -83 36v-208h-105z" />
<glyph unicode="&#xb6;" horiz-adv-x="449" d="M27 495q0 71 50.5 121.5t121.5 50.5h193v-767h-55v712h-83v-712h-55v423q-71 0 -121.5 50.5t-50.5 121.5z" />
<glyph unicode="&#xb7;" horiz-adv-x="245" d="M52 244q0 28 21 49t49 21t49 -21t21 -49t-21 -48.5t-49 -20.5t-49 20.5t-21 48.5z" />
<glyph unicode="&#xb8;" horiz-adv-x="214" d="M0 -163l22 46q36 -29 81 -29q23 0 39.5 9.5t16.5 26.5q0 30 -33 30q-21 0 -34 -15l-41 23l31 83h55l-26 -64q16 11 36 11q29 0 48 -19.5t19 -49.5q0 -37 -31 -60t-77 -23q-67 0 -106 31z" />
<glyph unicode="&#xb9;" horiz-adv-x="264" d="M10 697l124 124h70v-400h-81v296l-67 -69z" />
<glyph unicode="&#xba;" horiz-adv-x="405" d="M34 483q0 70 46.5 117.5t121.5 47.5q77 0 123 -47.5t46 -117.5t-46 -117.5t-123 -47.5q-75 0 -121.5 47.5t-46.5 117.5zM114 483q0 -46 23.5 -74t64.5 -28t65 28t24 74q0 45 -24 72.5t-65 27.5t-64.5 -27.5t-23.5 -72.5z" />
<glyph unicode="&#xbb;" horiz-adv-x="489" d="M30 63l160 180l-160 177h99l160 -177l-160 -180h-99zM200 63l160 180l-160 177h99l160 -177l-160 -180h-99z" />
<glyph unicode="&#xbc;" horiz-adv-x="806" d="M10 543l124 124h70v-400h-81v296l-67 -69zM125 0l426 667h68l-427 -667h-67zM445 92v56l164 252h112v-244h55v-64h-55v-92h-80v92h-196zM525 156h116v175z" />
<glyph unicode="&#xbd;" horiz-adv-x="841" d="M10 543l124 124h70v-400h-81v296l-67 -69zM125 0l426 667h68l-427 -667h-67zM488 341q55 65 155 65q66 0 109.5 -32t43.5 -90q0 -51 -44.5 -101.5t-139.5 -117.5h187v-65h-304v59q128 91 174.5 136t46.5 83q0 31 -21.5 47t-53.5 16q-34 0 -64 -15t-46 -36z" />
<glyph unicode="&#xbe;" horiz-adv-x="902" d="M36 324l41 52q45 -51 115 -51q39 0 60.5 15.5t21.5 41.5q0 57 -95 57q-37 0 -43 -1v65q8 -1 42 -1q89 0 89 53q0 25 -22.5 39t-57.5 14q-62 0 -107 -46l-39 48q58 63 154 63q70 0 111 -29.5t41 -78.5q0 -37 -26.5 -61.5t-62.5 -30.5q35 -3 65.5 -28t30.5 -68 q0 -52 -43.5 -84.5t-115.5 -32.5q-107 0 -159 64zM221 0l426 667h68l-427 -667h-67zM542 92v56l164 252h112v-244h55v-64h-55v-92h-80v92h-196zM622 156h116v175z" />
<glyph unicode="&#xbf;" horiz-adv-x="396" d="M24 -39q0 41 18.5 73.5t45 53t52.5 38.5t44.5 39.5t18.5 45.5q0 26 -22 45l88 29q36 -35 36 -85q0 -41 -25 -73.5t-55.5 -50.5t-55.5 -43t-25 -53q0 -31 24.5 -51.5t70.5 -20.5q82 0 139 70l67 -75q-81 -99 -218 -99q-93 0 -148 44t-55 113zM163 423q0 29 20.5 49.5 t49.5 20.5t49.5 -20.5t20.5 -49.5q0 -28 -21 -48.5t-49 -20.5t-49 20.5t-21 48.5z" />
<glyph unicode="&#xc0;" d="M1 0l262 667h146l262 -667h-133l-49 128h-306l-49 -128h-133zM158 867h100l140 -144h-75zM216 231h240l-120 318z" />
<glyph unicode="&#xc1;" d="M1 0l262 667h146l262 -667h-133l-49 128h-306l-49 -128h-133zM216 231h240l-120 318zM276 723l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xc2;" d="M1 0l262 667h146l262 -667h-133l-49 128h-306l-49 -128h-133zM195 723l93 144h96l96 -144h-67l-77 96l-75 -96h-66zM216 231h240l-120 318z" />
<glyph unicode="&#xc3;" d="M1 0l262 667h146l262 -667h-133l-49 128h-306l-49 -128h-133zM176 727q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57zM216 231h240 l-120 318z" />
<glyph unicode="&#xc4;" d="M1 0l262 667h146l262 -667h-133l-49 128h-306l-49 -128h-133zM173 775q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM216 231h240l-120 318zM382 775q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17 t-17.5 42z" />
<glyph unicode="&#xc5;" d="M1 0l262 667h146l262 -667h-133l-49 128h-306l-49 -128h-133zM216 231h240l-120 318zM235 791q0 42 30 72.5t72 30.5t71.5 -30.5t29.5 -72.5t-29.5 -72t-71.5 -30t-72 30t-30 72zM285 791q0 -21 15.5 -36.5t36.5 -15.5t36 15.5t15 36.5q0 22 -14.5 37t-36.5 15 q-21 0 -36.5 -15t-15.5 -37z" />
<glyph unicode="&#xc6;" horiz-adv-x="959" d="M-2 0l410 667h504v-103h-340v-173h333v-103h-333v-185h340v-103h-457v128h-247l-77 -128h-133zM264 231h191v318z" />
<glyph unicode="&#xc7;" horiz-adv-x="682" d="M41 333q0 152 100 248.5t250 96.5q174 0 268 -150l-100 -51q-25 43 -70.5 70t-97.5 27q-99 0 -164.5 -68t-65.5 -173t65.5 -173t164.5 -68q53 0 98 27t70 70l100 -51q-91 -144 -254 -150l-15 -37q16 11 36 11q29 0 48 -19.5t19 -49.5q0 -37 -31 -60t-77 -23 q-67 0 -106 31l22 46q36 -29 81 -29q23 0 39.5 9.5t16.5 26.5q0 30 -33 30q-21 0 -34 -15l-41 23l21 58q-135 13 -222.5 107.5t-87.5 235.5z" />
<glyph unicode="&#xc8;" horiz-adv-x="577" d="M71 0v667h457v-103h-340v-173h333v-103h-333v-185h340v-103h-457zM120 867h100l140 -144h-75z" />
<glyph unicode="&#xc9;" horiz-adv-x="577" d="M71 0v667h457v-103h-340v-173h333v-103h-333v-185h340v-103h-457zM238 723l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xca;" horiz-adv-x="577" d="M71 0v667h457v-103h-340v-173h333v-103h-333v-185h340v-103h-457zM157 723l93 144h96l96 -144h-67l-77 96l-75 -96h-66z" />
<glyph unicode="&#xcb;" horiz-adv-x="577" d="M71 0v667h457v-103h-340v-173h333v-103h-333v-185h340v-103h-457zM136 775q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM345 775q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xcc;" horiz-adv-x="259" d="M-50 867h100l140 -144h-75zM71 0v667h117v-667h-117z" />
<glyph unicode="&#xcd;" horiz-adv-x="259" d="M70 723l140 144h100l-165 -144h-75zM71 0v667h117v-667h-117z" />
<glyph unicode="&#xce;" horiz-adv-x="259" d="M-12 723l93 144h96l96 -144h-67l-77 96l-75 -96h-66zM71 0v667h117v-667h-117z" />
<glyph unicode="&#xcf;" horiz-adv-x="259" d="M-33 775q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM71 0v667h117v-667h-117zM176 775q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xd0;" horiz-adv-x="736" d="M9 285v86h88v296h248q155 0 252 -93t97 -241q0 -147 -96.5 -240t-252.5 -93h-248v285h-88zM214 103h131q105 0 167 66t62 164q0 101 -60.5 166t-168.5 65h-131v-193h158v-86h-158v-182z" />
<glyph unicode="&#xd1;" horiz-adv-x="720" d="M71 0v667h120l341 -463v463h117v-667h-113l-348 476v-476h-117zM198 727q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57z" />
<glyph unicode="&#xd2;" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5t-245 97.5t-96 247.5zM161 333q0 -105 60.5 -173t160.5 -68q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173zM204 867h100l140 -144h-75z" />
<glyph unicode="&#xd3;" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5t-245 97.5t-96 247.5zM161 333q0 -105 60.5 -173t160.5 -68q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173zM322 723l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xd4;" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5t-245 97.5t-96 247.5zM161 333q0 -105 60.5 -173t160.5 -68q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173zM242 723l93 144h96l96 -144h-67l-77 96l-75 -96 h-66z" />
<glyph unicode="&#xd5;" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5t-245 97.5t-96 247.5zM161 333q0 -105 60.5 -173t160.5 -68q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173zM222 727q0 62 26.5 98t76.5 36q29 0 50 -19.5 t36.5 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57z" />
<glyph unicode="&#xd6;" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5t245 -97.5t96 -247.5t-96 -247.5t-245 -97.5t-245 97.5t-96 247.5zM161 333q0 -105 60.5 -173t160.5 -68q99 0 160 68.5t61 172.5q0 105 -61 173t-160 68q-100 0 -160.5 -68t-60.5 -173zM219 775q0 24 17 41t42 17q24 0 41 -17t17 -41 q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM428 775q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xd7;" horiz-adv-x="502" d="M59 189l144 145l-144 144l48 48l144 -145l144 145l48 -48l-144 -144l144 -145l-48 -47l-144 144l-144 -144z" />
<glyph unicode="&#xd8;" horiz-adv-x="765" d="M41 333q0 150 96 247.5t245 97.5q93 0 170 -41l22 30h87l-51 -71q113 -100 113 -263q0 -150 -96 -247.5t-245 -97.5q-101 0 -179 46l-25 -34h-87l55 76q-105 99 -105 257zM161 333q0 -98 52 -164l275 379q-47 26 -106 26q-100 0 -160.5 -68t-60.5 -173zM267 122 q51 -30 115 -30q99 0 160 68.5t61 172.5t-60 172z" />
<glyph unicode="&#xd9;" horiz-adv-x="719" d="M71 263v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74q-142 0 -215.5 74t-73.5 201zM181 867h100l140 -144h-75z" />
<glyph unicode="&#xda;" horiz-adv-x="719" d="M71 263v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74q-142 0 -215.5 74t-73.5 201zM299 723l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xdb;" horiz-adv-x="719" d="M71 263v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74q-142 0 -215.5 74t-73.5 201zM219 723l93 144h96l96 -144h-67l-77 96l-75 -96h-66z" />
<glyph unicode="&#xdc;" horiz-adv-x="719" d="M71 263v404h118v-400q0 -81 44.5 -128t126.5 -47t126 47t44 128v400h118v-403q0 -128 -73.5 -202t-214.5 -74q-142 0 -215.5 74t-73.5 201zM198 775q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM407 775q0 24 17.5 41t41.5 17 t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xdd;" horiz-adv-x="637" d="M1 667h134l184 -286l182 286h134l-258 -390v-277h-117v277zM257 723l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xde;" horiz-adv-x="608" d="M71 0v667h117v-113h176q101 0 159.5 -60.5t58.5 -149.5q0 -88 -58.5 -147.5t-159.5 -59.5h-176v-137h-117zM188 240h160q50 0 82 29t32 76t-32 76.5t-82 29.5h-160v-211z" />
<glyph unicode="&#xdf;" horiz-adv-x="623" d="M68 0v485q0 81 58 136.5t155 55.5q78 0 135 -38t57 -99q0 -37 -21.5 -66t-48 -44t-48 -35t-21.5 -43q0 -20 20 -32t50.5 -17.5t65.5 -16.5t65.5 -24.5t50.5 -45t20 -76.5q0 -66 -52.5 -109t-142.5 -43q-67 0 -109.5 20t-82.5 58l47 73q22 -29 61.5 -48t83.5 -19 q45 0 69.5 19t24.5 46q0 22 -20 36t-50.5 20.5t-65.5 17.5t-65.5 24.5t-50.5 42.5t-20 71q0 36 21 65t45.5 44t45.5 33t21 35q0 27 -26.5 42.5t-60.5 15.5q-46 0 -76 -27t-30 -72v-485h-105z" />
<glyph unicode="&#xe0;" horiz-adv-x="536" d="M39 148q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5zM88 700h100l140 -144h-75zM145 146q0 -39 29 -62.5t74 -23.5q79 0 115 50v73 q-36 50 -115 50q-45 0 -74 -24t-29 -63z" />
<glyph unicode="&#xe1;" horiz-adv-x="536" d="M39 148q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5zM145 146q0 -39 29 -62.5t74 -23.5q79 0 115 50v73q-36 50 -115 50 q-45 0 -74 -24t-29 -63zM206 556l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xe2;" horiz-adv-x="536" d="M39 148q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5zM125 556l93 144h96l96 -144h-67l-77 96l-75 -96h-66zM145 146 q0 -39 29 -62.5t74 -23.5q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63z" />
<glyph unicode="&#xe3;" horiz-adv-x="536" d="M39 148q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5zM107 560q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5 q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57zM145 146q0 -39 29 -62.5t74 -23.5q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63z" />
<glyph unicode="&#xe4;" horiz-adv-x="536" d="M39 148q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5zM104 608q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17 q-25 0 -42 17t-17 42zM145 146q0 -39 29 -62.5t74 -23.5q79 0 115 50v73q-36 50 -115 50q-45 0 -74 -24t-29 -63zM313 608q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xe5;" horiz-adv-x="536" d="M39 148q0 77 50.5 117t117.5 40q103 0 156 -62v72q0 42 -31 66t-82 24q-81 0 -143 -61l-43 73q82 78 203 78q89 0 145 -42t56 -133v-320h-105v52q-56 -64 -156 -64q-66 0 -117 42.5t-51 117.5zM145 146q0 -39 29 -62.5t74 -23.5q79 0 115 50v73q-36 50 -115 50 q-45 0 -74 -24t-29 -63zM166 638q0 42 30 72.5t72 30.5t71.5 -30.5t29.5 -72.5t-29.5 -72t-71.5 -30t-72 30t-30 72zM216 638q0 -21 15.5 -36.5t36.5 -15.5t36 15.5t15 36.5q0 22 -14.5 37t-36.5 15q-21 0 -36.5 -15t-15.5 -37z" />
<glyph unicode="&#xe6;" horiz-adv-x="878" d="M39 147q0 75 51 116.5t126 41.5q110 0 170 -60v71q0 41 -34 65t-89 24q-89 0 -156 -61l-43 73q84 78 208 78q137 0 174 -93q64 93 177 93q100 0 159.5 -73.5t59.5 -189.5v-25h-351q6 -57 43.5 -94t98.5 -37q34 0 69 14t58 39l48 -71q-35 -33 -84 -51.5t-96 -18.5 q-132 0 -190 98q-29 -44 -83.5 -71t-119.5 -27q-82 0 -139 41.5t-57 117.5zM145 154q0 -38 31 -58t82 -20t89.5 31.5t38.5 67.5v7q-45 51 -128 51q-50 0 -81.5 -20.5t-31.5 -58.5zM490 281h250q-2 50 -33.5 89t-91.5 39q-57 0 -89.5 -39t-35.5 -89z" />
<glyph unicode="&#xe7;" horiz-adv-x="497" d="M38 242q0 110 70 181.5t180 71.5q121 0 185 -86l-69 -64q-40 57 -111 57q-66 0 -106 -44.5t-40 -115.5t40 -116t106 -45q69 0 111 57l69 -64q-57 -77 -162 -85l-16 -40q16 11 36 11q29 0 48 -19.5t19 -49.5q0 -37 -31 -60t-77 -23q-67 0 -106 31l22 46q36 -29 81 -29 q23 0 39.5 9.5t16.5 26.5q0 30 -33 30q-21 0 -34 -15l-41 23l22 60q-98 10 -158.5 79.5t-60.5 172.5z" />
<glyph unicode="&#xe8;" horiz-adv-x="557" d="M38 242q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70q-110 0 -181.5 70.5t-71.5 183.5zM105 700h100l140 -144h-75zM147 281h272q-2 50 -36.5 89t-99.5 39q-62 0 -97 -38.5 t-39 -89.5z" />
<glyph unicode="&#xe9;" horiz-adv-x="557" d="M38 242q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70q-110 0 -181.5 70.5t-71.5 183.5zM147 281h272q-2 50 -36.5 89t-99.5 39q-62 0 -97 -38.5t-39 -89.5zM223 556l140 144h100 l-165 -144h-75z" />
<glyph unicode="&#xea;" horiz-adv-x="557" d="M38 242q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70q-110 0 -181.5 70.5t-71.5 183.5zM142 556l93 144h96l96 -144h-67l-77 96l-75 -96h-66zM147 281h272q-2 50 -36.5 89 t-99.5 39q-62 0 -97 -38.5t-39 -89.5z" />
<glyph unicode="&#xeb;" horiz-adv-x="557" d="M38 242q0 106 69.5 179.5t175.5 73.5q107 0 172.5 -74t65.5 -189v-25h-373q6 -57 47 -95t107 -38q37 0 74.5 14t62.5 39l48 -69q-73 -70 -196 -70q-110 0 -181.5 70.5t-71.5 183.5zM121 608q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17 t-17 42zM147 281h272q-2 50 -36.5 89t-99.5 39q-62 0 -97 -38.5t-39 -89.5zM330 608q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xec;" horiz-adv-x="241" d="M-59 700h100l140 -144h-75zM68 0v483h105v-483h-105z" />
<glyph unicode="&#xed;" horiz-adv-x="241" d="M60 556l140 144h100l-165 -144h-75zM68 0v483h105v-483h-105z" />
<glyph unicode="&#xee;" horiz-adv-x="241" d="M-22 556l93 144h96l96 -144h-67l-77 96l-75 -96h-66zM68 0v483h105v-483h-105z" />
<glyph unicode="&#xef;" horiz-adv-x="241" d="M-43 608q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM68 0v483h105v-483h-105zM166 608q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xf0;" horiz-adv-x="573" d="M38 228q0 104 61.5 172t155.5 68q99 0 159 -91q-40 81 -158 168l-145 -64l-22 52l112 49q-13 9 -37 23.5t-30 18.5l57 85q64 -38 118 -79l105 46l22 -51l-78 -35q177 -155 177 -340q0 -117 -67 -189.5t-182 -72.5q-111 0 -179.5 67.5t-68.5 172.5zM147 228 q0 -62 37.5 -104.5t101.5 -42.5q65 0 102.5 42.5t37.5 104.5t-37.5 104.5t-102.5 42.5q-64 0 -101.5 -42.5t-37.5 -104.5z" />
<glyph unicode="&#xf1;" horiz-adv-x="567" d="M68 0v483h105v-66q27 32 72 55t98 23q77 0 116.5 -40t39.5 -115v-340h-105v302q0 100 -97 100q-38 0 -71 -19t-53 -46v-337h-105zM124 560q0 62 26.5 98t76.5 36q29 0 50 -19.5t36.5 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36q-19 0 -34.5 8t-25.5 19.5 t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57z" />
<glyph unicode="&#xf2;" horiz-adv-x="573" d="M38 242q0 107 68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73q-112 0 -180 73.5t-68 180.5zM108 700h100l140 -144h-75zM147 242q0 -68 37.5 -114.5t101.5 -46.5q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5 t-37.5 -113.5z" />
<glyph unicode="&#xf3;" horiz-adv-x="573" d="M38 242q0 107 68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73q-112 0 -180 73.5t-68 180.5zM147 242q0 -68 37.5 -114.5t101.5 -46.5q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5zM226 556l140 144h100 l-165 -144h-75z" />
<glyph unicode="&#xf4;" horiz-adv-x="573" d="M38 242q0 107 68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73q-112 0 -180 73.5t-68 180.5zM144 556l93 144h96l96 -144h-67l-77 96l-75 -96h-66zM147 242q0 -68 37.5 -114.5t101.5 -46.5q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5 q-64 0 -101.5 -46.5t-37.5 -113.5z" />
<glyph unicode="&#xf5;" horiz-adv-x="573" d="M38 242q0 107 68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73q-112 0 -180 73.5t-68 180.5zM126 560q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5 t-21.5 8q-18 0 -30 -18t-12 -54h-57zM147 242q0 -68 37.5 -114.5t101.5 -46.5q65 0 102.5 46.5t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5z" />
<glyph unicode="&#xf6;" horiz-adv-x="573" d="M38 242q0 107 68 180t180 73q113 0 181 -73t68 -180q0 -108 -68 -181t-181 -73q-112 0 -180 73.5t-68 180.5zM123 608q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM147 242q0 -68 37.5 -114.5t101.5 -46.5q65 0 102.5 46.5 t37.5 114.5q0 67 -37.5 113.5t-102.5 46.5q-64 0 -101.5 -46.5t-37.5 -113.5zM332 608q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xf7;" horiz-adv-x="511" d="M29 303v68h453v-68h-453zM201 151q0 23 16 39t38 16q23 0 39 -16t16 -39q0 -22 -16 -38t-39 -16t-38.5 15.5t-15.5 38.5zM201 520q0 22 15.5 38t38.5 16t39 -16t16 -38t-16 -38.5t-39 -16.5q-22 0 -38 16t-16 39z" />
<glyph unicode="&#xf8;" horiz-adv-x="573" d="M38 242q0 107 68 180t180 73q78 0 140 -39l22 27h69l-50 -61q68 -71 68 -180q0 -108 -68 -181t-181 -73q-84 0 -143 42l-25 -30h-68l53 64q-65 71 -65 178zM147 242q0 -54 24 -95l191 232q-35 23 -76 23q-64 0 -101.5 -46.5t-37.5 -113.5zM206 107q36 -26 80 -26 q65 0 102.5 46.5t37.5 114.5q0 58 -27 98z" />
<glyph unicode="&#xf9;" horiz-adv-x="567" d="M68 141v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483h-105v64q-68 -76 -171 -76q-155 0 -155 153zM104 700h100l140 -144h-75z" />
<glyph unicode="&#xfa;" horiz-adv-x="567" d="M68 141v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483h-105v64q-68 -76 -171 -76q-155 0 -155 153zM222 556l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xfb;" horiz-adv-x="567" d="M68 141v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483h-105v64q-68 -76 -171 -76q-155 0 -155 153zM141 556l93 144h96l96 -144h-67l-77 96l-75 -96h-66z" />
<glyph unicode="&#xfc;" horiz-adv-x="567" d="M68 141v342h105v-304q0 -53 25 -75.5t72 -22.5q38 0 71 18t53 45v339h105v-483h-105v64q-68 -76 -171 -76q-155 0 -155 153zM119 608q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM328 608q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41 q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#xfd;" horiz-adv-x="503" d="M-2 483h112l141 -362l141 362h113l-233 -570q-43 -107 -166 -109q-33 0 -59 7l16 94q18 -8 40 -8q51 0 69 42l24 55zM190 556l140 144h100l-165 -144h-75z" />
<glyph unicode="&#xfe;" horiz-adv-x="578" d="M68 -184v851h105v-250q58 78 155 78q95 0 154.5 -68t59.5 -185t-59.5 -185.5t-154.5 -68.5q-96 0 -155 79v-251h-105zM173 146q18 -27 53 -46t71 -19q62 0 99 45t37 116t-37 115.5t-99 44.5q-36 0 -71 -19t-53 -46v-191z" />
<glyph unicode="&#xff;" horiz-adv-x="503" d="M-2 483h112l141 -362l141 362h113l-233 -570q-43 -107 -166 -109q-33 0 -59 7l16 94q18 -8 40 -8q51 0 69 42l24 55zM88 608q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM297 608q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41 q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#x152;" horiz-adv-x="1093" d="M41 333q0 150 92.5 247t237.5 97q64 0 123.5 -28t93.5 -79v97h457v-103h-340v-173h333v-103h-333v-185h340v-103h-457v96q-34 -52 -93.5 -80t-123.5 -28q-145 0 -237.5 97.5t-92.5 247.5zM161 333q0 -105 61.5 -173t163.5 -68q69 0 122.5 35t79.5 100v212 q-26 65 -79 99.5t-123 34.5q-103 0 -164 -67.5t-61 -172.5z" />
<glyph unicode="&#x153;" horiz-adv-x="944" d="M38 242q0 107 68 180t180 73q123 0 194 -121q67 121 191 121q107 0 172 -73.5t65 -189.5v-25h-372q6 -57 46.5 -95t106.5 -38q83 0 138 53l48 -69q-75 -70 -196 -70q-129 0 -200 120q-69 -120 -193 -120q-112 0 -180 73.5t-68 180.5zM147 242q0 -70 38 -116t101 -46 q64 0 102 46t38 116q0 69 -38 114.5t-102 45.5q-63 0 -101 -45.5t-38 -114.5zM535 281h272q-3 50 -37.5 89t-99.5 39q-62 0 -97 -39t-38 -89z" />
<glyph unicode="&#x178;" horiz-adv-x="637" d="M1 667h134l184 -286l182 286h134l-258 -390v-277h-117v277zM156 775q0 24 17 41t42 17q24 0 41 -17t17 -41q0 -25 -17 -42t-41 -17q-25 0 -42 17t-17 42zM365 775q0 24 17.5 41t41.5 17t41.5 -17t17.5 -41q0 -25 -17.5 -42t-41.5 -17t-41.5 17t-17.5 42z" />
<glyph unicode="&#x2c6;" horiz-adv-x="285" d="M0 556l93 144h96l96 -144h-67l-77 96l-75 -96h-66z" />
<glyph unicode="&#x2dc;" horiz-adv-x="321" d="M0 560q0 62 26.5 98t76.5 36q30 0 50.5 -19.5t36 -39t32.5 -19.5q41 0 41 72h58q0 -62 -26.5 -98t-76.5 -36q-19 0 -34.5 8t-25.5 19.5t-18.5 23t-19 19.5t-21.5 8q-18 0 -30 -18t-12 -54h-57z" />
<glyph unicode="&#x2000;" horiz-adv-x="447" />
<glyph unicode="&#x2001;" horiz-adv-x="894" />
<glyph unicode="&#x2002;" horiz-adv-x="447" />
<glyph unicode="&#x2003;" horiz-adv-x="894" />
<glyph unicode="&#x2004;" horiz-adv-x="298" />
<glyph unicode="&#x2005;" horiz-adv-x="223" />
<glyph unicode="&#x2006;" horiz-adv-x="149" />
<glyph unicode="&#x2007;" horiz-adv-x="149" />
<glyph unicode="&#x2008;" horiz-adv-x="111" />
<glyph unicode="&#x2009;" horiz-adv-x="178" />
<glyph unicode="&#x200a;" horiz-adv-x="49" />
<glyph unicode="&#x2010;" horiz-adv-x="300" d="M30 197v90h240v-90h-240z" />
<glyph unicode="&#x2011;" horiz-adv-x="300" d="M30 197v90h240v-90h-240z" />
<glyph unicode="&#x2012;" horiz-adv-x="300" d="M30 197v90h240v-90h-240z" />
<glyph unicode="&#x2013;" horiz-adv-x="593" d="M30 197v90h533v-90h-533z" />
<glyph unicode="&#x2014;" horiz-adv-x="833" d="M30 197v90h773v-90h-773z" />
<glyph unicode="&#x2018;" horiz-adv-x="244" d="M42 507q0 50 25.5 95t68.5 75l47 -38q-25 -15 -46 -42t-26 -52q6 2 17 2q26 0 43 -17.5t17 -45.5t-20 -48t-48 -20q-32 0 -55 24.5t-23 66.5z" />
<glyph unicode="&#x2019;" horiz-adv-x="244" d="M52 608q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5z" />
<glyph unicode="&#x201a;" horiz-adv-x="245" d="M52 60q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5z" />
<glyph unicode="&#x201c;" horiz-adv-x="429" d="M46 507q0 50 25.5 95t67.5 75l48 -38q-25 -15 -46.5 -42t-25.5 -52q4 2 17 2q25 0 42 -18t17 -45q0 -28 -20 -48t-48 -20q-32 0 -54.5 24.5t-22.5 66.5zM231 507q0 50 25.5 95t67.5 75l48 -38q-25 -15 -46.5 -42t-25.5 -52q4 2 17 2q25 0 42 -18t17 -45q0 -28 -20 -48 t-48 -20q-32 0 -54.5 24.5t-22.5 66.5z" />
<glyph unicode="&#x201d;" horiz-adv-x="429" d="M52 608q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5zM237 608q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52 q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5z" />
<glyph unicode="&#x201e;" horiz-adv-x="430" d="M52 60q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5zM237 60q0 28 20 48.5t48 20.5q32 0 55 -24.5t23 -66.5q0 -50 -25.5 -95.5t-68.5 -75.5l-47 39q25 15 46 42t26 52 q-9 -3 -17 -3q-26 0 -43 17.5t-17 45.5z" />
<glyph unicode="&#x2022;" horiz-adv-x="358" d="M66 242q0 47 33.5 80.5t80.5 33.5t80.5 -33.5t33.5 -80.5t-33.5 -80t-80.5 -33t-80.5 33t-33.5 80z" />
<glyph unicode="&#x2026;" horiz-adv-x="734" d="M52 59q0 29 20.5 49.5t48.5 20.5q29 0 49.5 -20.5t20.5 -49.5q0 -28 -21 -48.5t-49 -20.5t-48.5 20.5t-20.5 48.5zM297 59q0 29 20.5 49.5t48.5 20.5t49 -20.5t21 -49.5q0 -28 -21 -48.5t-49 -20.5t-48.5 20.5t-20.5 48.5zM542 59q0 29 20.5 49.5t48.5 20.5 q29 0 49.5 -20.5t20.5 -49.5q0 -28 -21 -48.5t-49 -20.5t-48.5 20.5t-20.5 48.5z" />
<glyph unicode="&#x202f;" horiz-adv-x="178" />
<glyph unicode="&#x2039;" horiz-adv-x="319" d="M30 243l160 177h99l-160 -177l160 -180h-99z" />
<glyph unicode="&#x203a;" horiz-adv-x="319" d="M30 63l160 180l-160 177h99l160 -177l-160 -180h-99z" />
<glyph unicode="&#x205f;" horiz-adv-x="223" />
<glyph unicode="&#x20ac;" horiz-adv-x="703" d="M25 230v67h39q-1 11 -1 36q0 12 2 38h-40v67h52q32 109 123.5 174.5t212.5 65.5q174 0 268 -150l-100 -51q-25 43 -70.5 70t-97.5 27q-71 0 -127 -36.5t-82 -99.5h270v-67h-289q-2 -24 -2 -38q0 -25 2 -36h289v-67h-271q27 -64 82.5 -101t127.5 -37q53 0 98 27t70 70 l100 -51q-96 -150 -268 -150q-122 0 -213.5 65.5t-122.5 176.5h-52z" />
<glyph unicode="&#x2122;" horiz-adv-x="454" d="M17 641v26h152v-26h-62v-194h-28v194h-62zM205 447v220h43l64 -160l64 160h43v-220h-28v182l-75 -182h-8l-75 182v-182h-28z" />
<glyph unicode="&#xe000;" horiz-adv-x="485" d="M0 0v485h485v-485h-485z" />
<hkern g1="B" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="10" />
<hkern g1="B" g2="T" k="15" />
<hkern g1="B" g2="W" k="10" />
<hkern g1="B" g2="V" k="15" />
<hkern g1="B" g2="Y,Yacute,Ydieresis" k="30" />
<hkern g1="C,Ccedilla" g2="question" k="5" />
<hkern g1="C,Ccedilla" g2="W" k="5" />
<hkern g1="C,Ccedilla" g2="V" k="3" />
<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="20" />
<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="5" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="question" k="20" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="10" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="J" k="20" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="T" k="25" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="W" k="20" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="V" k="20" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="Y,Yacute,Ydieresis" k="40" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="35" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="Z" k="15" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="25" />
<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,Thorn" g2="X" k="30" />
<hkern g1="F" g2="J" k="65" />
<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="40" />
<hkern g1="F" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="50" />
<hkern g1="F" g2="ampersand" k="10" />
<hkern g1="G" g2="question" k="10" />
<hkern g1="G" g2="T" k="5" />
<hkern g1="G" g2="W" k="5" />
<hkern g1="G" g2="V" k="10" />
<hkern g1="G" g2="Y,Yacute,Ydieresis" k="15" />
<hkern g1="G" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="5" />
<hkern g1="G" g2="X" k="5" />
<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="50" />
<hkern g1="K" g2="Y,Yacute,Ydieresis" k="15" />
<hkern g1="K" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="30" />
<hkern g1="K" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="20" />
<hkern g1="K" g2="t" k="45" />
<hkern g1="K" g2="w" k="40" />
<hkern g1="K" g2="v" k="60" />
<hkern g1="K" g2="y,yacute,ydieresis" k="60" />
<hkern g1="K" g2="hyphen,periodcentered,endash,emdash" k="50" />
<hkern g1="K" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="15" />
<hkern g1="K" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="30" />
<hkern g1="K" g2="x" k="30" />
<hkern g1="L" g2="question" k="110" />
<hkern g1="L" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="130" />
<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" />
<hkern g1="L" g2="asterisk" k="170" />
<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="25" />
<hkern g1="L" g2="T" k="100" />
<hkern g1="L" g2="W" k="70" />
<hkern g1="L" g2="V" k="90" />
<hkern g1="L" g2="Y,Yacute,Ydieresis" k="125" />
<hkern g1="L" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="10" />
<hkern g1="L" g2="t" k="35" />
<hkern g1="L" g2="w" k="35" />
<hkern g1="L" g2="v" k="55" />
<hkern g1="L" g2="y,yacute,ydieresis" k="55" />
<hkern g1="L" g2="ampersand" k="5" />
<hkern g1="L" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" />
<hkern g1="L" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="15" />
<hkern g1="P" g2="J" k="115" />
<hkern g1="P" g2="Y,Yacute,Ydieresis" k="5" />
<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="75" />
<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="90" />
<hkern g1="P" g2="X" k="15" />
<hkern g1="P" g2="ampersand" k="30" />
<hkern g1="P" g2="hyphen,periodcentered,endash,emdash" k="30" />
<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" />
<hkern g1="P" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="15" />
<hkern g1="R" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="5" />
<hkern g1="R" g2="T" k="10" />
<hkern g1="R" g2="V" k="10" />
<hkern g1="R" g2="Y,Yacute,Ydieresis" k="17" />
<hkern g1="R" g2="ampersand" k="5" />
<hkern g1="R" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" />
<hkern g1="R" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="30" />
<hkern g1="R" g2="s" k="10" />
<hkern g1="S" g2="T" k="10" />
<hkern g1="S" g2="Y,Yacute,Ydieresis" k="10" />
<hkern g1="S" g2="t" k="15" />
<hkern g1="S" g2="w" k="5" />
<hkern g1="S" g2="v" k="10" />
<hkern g1="S" g2="y,yacute,ydieresis" k="10" />
<hkern g1="S" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="10" />
<hkern g1="S" g2="x" k="15" />
<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" />
<hkern g1="T" g2="J" k="85" />
<hkern g1="T" g2="S" k="5" />
<hkern g1="T" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="25" />
<hkern g1="T" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="75" />
<hkern g1="T" g2="w" k="40" />
<hkern g1="T" g2="v" k="40" />
<hkern g1="T" g2="y,yacute,ydieresis" k="40" />
<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="65" />
<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="95" />
<hkern g1="T" g2="ampersand" k="55" />
<hkern g1="T" g2="hyphen,periodcentered,endash,emdash" k="60" />
<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="85" />
<hkern g1="T" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="105" />
<hkern g1="T" g2="x" k="50" />
<hkern g1="T" g2="s" k="85" />
<hkern g1="T" g2="colon,semicolon" k="50" />
<hkern g1="T" g2="m,n,p,r,z,ntilde" k="75" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="20" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="30" />
<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="30" />
<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" />
<hkern g1="V" g2="J" k="95" />
<hkern g1="V" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="25" />
<hkern g1="V" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="50" />
<hkern g1="V" g2="t" k="15" />
<hkern g1="V" g2="w" k="10" />
<hkern g1="V" g2="v" k="15" />
<hkern g1="V" g2="y,yacute,ydieresis" k="10" />
<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="50" />
<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="90" />
<hkern g1="V" g2="ampersand" k="35" />
<hkern g1="V" g2="hyphen,periodcentered,endash,emdash" k="55" />
<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="65" />
<hkern g1="V" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="60" />
<hkern g1="V" g2="x" k="25" />
<hkern g1="V" g2="s" k="45" />
<hkern g1="V" g2="m,n,p,r,z,ntilde" k="50" />
<hkern g1="W" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" />
<hkern g1="W" g2="J" k="50" />
<hkern g1="W" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="15" />
<hkern g1="W" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="30" />
<hkern g1="W" g2="t" k="15" />
<hkern g1="W" g2="v" k="5" />
<hkern g1="W" g2="y,yacute,ydieresis" k="5" />
<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="45" />
<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="65" />
<hkern g1="W" g2="ampersand" k="20" />
<hkern g1="W" g2="hyphen,periodcentered,endash,emdash" k="35" />
<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="40" />
<hkern g1="W" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="40" />
<hkern g1="W" g2="x" k="25" />
<hkern g1="W" g2="s" k="25" />
<hkern g1="W" g2="m,n,p,r,z,ntilde" k="30" />
<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="40" />
<hkern g1="Y,Yacute,Ydieresis" g2="J" k="115" />
<hkern g1="Y,Yacute,Ydieresis" g2="S" k="20" />
<hkern g1="Y,Yacute,Ydieresis" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="55" />
<hkern g1="Y,Yacute,Ydieresis" g2="u,uni00B5,ugrave,uacute,ucircumflex,udieresis" k="90" />
<hkern g1="Y,Yacute,Ydieresis" g2="t" k="30" />
<hkern g1="Y,Yacute,Ydieresis" g2="w" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="v" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="90" />
<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="60" />
<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,periodcentered,endash,emdash" k="120" />
<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="115" />
<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="125" />
<hkern g1="Y,Yacute,Ydieresis" g2="x" k="75" />
<hkern g1="Y,Yacute,Ydieresis" g2="s" k="100" />
<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="65" />
<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,z,ntilde" k="90" />
<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="15" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="question" k="40" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="10" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="T" k="100" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="W" k="45" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="V" k="70" />
<hkern g1="a,h,m,n,agrave,aacute,acircumflex,atilde,adieresis,aring,ntilde" g2="Y,Yacute,Ydieresis" k="110" />
<hkern g1="ampersand" g2="T" k="70" />
<hkern g1="ampersand" g2="W" k="40" />
<hkern g1="ampersand" g2="V" k="50" />
<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="85" />
<hkern g1="asterisk" g2="J" k="120" />
<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="95" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="question" k="50" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="10" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="T" k="105" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="W" k="40" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="V" k="60" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="Y,Yacute,Ydieresis" k="120" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="5" />
<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="35" />
<hkern g1="c,cent,ccedilla" g2="question" k="25" />
<hkern g1="c,cent,ccedilla" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="5" />
<hkern g1="c,cent,ccedilla" g2="T" k="75" />
<hkern g1="c,cent,ccedilla" g2="W" k="25" />
<hkern g1="c,cent,ccedilla" g2="V" k="40" />
<hkern g1="c,cent,ccedilla" g2="Y,Yacute,Ydieresis" k="65" />
<hkern g1="colon,semicolon" g2="T" k="50" />
<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="65" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="question" k="40" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="5" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="15" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="95" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="40" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="55" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="110" />
<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="5" />
<hkern g1="eth" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="5" />
<hkern g1="f" g2="question" k="-55" />
<hkern g1="f" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="-65" />
<hkern g1="f" g2="asterisk" k="-65" />
<hkern g1="f" g2="S" k="-25" />
<hkern g1="f" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="-40" />
<hkern g1="f" g2="T" k="-40" />
<hkern g1="f" g2="W" k="-65" />
<hkern g1="f" g2="V" k="-65" />
<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-60" />
<hkern g1="f" g2="Z" k="-40" />
<hkern g1="f" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="45" />
<hkern g1="f" g2="X" k="-40" />
<hkern g1="f" g2="ampersand" k="5" />
<hkern g1="f" g2="exclam,B,D,E,F,H,I,K,L,M,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde" k="-40" />
<hkern g1="f" g2="parenright,bracketright,braceright" k="-70" />
<hkern g1="g,j,q" g2="question" k="25" />
<hkern g1="g,j,q" g2="T" k="75" />
<hkern g1="g,j,q" g2="W" k="30" />
<hkern g1="g,j,q" g2="V" k="50" />
<hkern g1="g,j,q" g2="Y,Yacute,Ydieresis" k="90" />
<hkern g1="g,j,q" g2="j" k="-50" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="W" k="35" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="V" k="55" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="Y,Yacute,Ydieresis" k="115" />
<hkern g1="hyphen,periodcentered,endash,emdash" g2="X" k="45" />
<hkern g1="k" g2="T" k="55" />
<hkern g1="k" g2="W" k="25" />
<hkern g1="k" g2="V" k="25" />
<hkern g1="k" g2="Y,Yacute,Ydieresis" k="70" />
<hkern g1="k" g2="bullet" k="25" />
<hkern g1="k" g2="hyphen,periodcentered,endash,emdash" k="25" />
<hkern g1="k" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="5" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="80" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="30" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="T" k="95" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="W" k="65" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="V" k="85" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="Y,Yacute,Ydieresis" k="90" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="25" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="t" k="25" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="w" k="40" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="v" k="65" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="y,yacute,ydieresis" k="55" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="5" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="j" k="-40" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="seven" k="70" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="one" k="90" />
<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="zero,six" k="25" />
<hkern g1="questiondown" g2="j" k="-160" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="5" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="J" k="100" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="100" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="80" />
<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="s" k="30" />
<hkern g1="r" g2="T" k="40" />
<hkern g1="r" g2="W" k="10" />
<hkern g1="r" g2="V" k="25" />
<hkern g1="r" g2="Y,Yacute,Ydieresis" k="50" />
<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="85" />
<hkern g1="r" g2="X" k="15" />
<hkern g1="s" g2="question" k="45" />
<hkern g1="s" g2="quotedbl,quotesingle,registered,quoteleft,quoteright,quotedblleft,quotedblright,trademark" k="20" />
<hkern g1="s" g2="T" k="80" />
<hkern g1="s" g2="W" k="45" />
<hkern g1="s" g2="V" k="45" />
<hkern g1="s" g2="Y,Yacute,Ydieresis" k="95" />
<hkern g1="s" g2="X" k="5" />
<hkern g1="t" g2="T" k="40" />
<hkern g1="t" g2="W" k="15" />
<hkern g1="t" g2="V" k="30" />
<hkern g1="t" g2="Y,Yacute,Ydieresis" k="35" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="question" k="25" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="T" k="75" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="W" k="30" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="V" k="50" />
<hkern g1="u,z,uni00B5,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="90" />
<hkern g1="v" g2="T" k="40" />
<hkern g1="v" g2="W" k="5" />
<hkern g1="v" g2="V" k="15" />
<hkern g1="v" g2="Y,Yacute,Ydieresis" k="60" />
<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="20" />
<hkern g1="v" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="65" />
<hkern g1="v" g2="X" k="35" />
<hkern g1="w" g2="T" k="40" />
<hkern g1="w" g2="V" k="10" />
<hkern g1="w" g2="Y,Yacute,Ydieresis" k="60" />
<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="15" />
<hkern g1="w" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="40" />
<hkern g1="w" g2="X" k="40" />
<hkern g1="y,yacute,ydieresis" g2="question" k="5" />
<hkern g1="y,yacute,ydieresis" g2="T" k="40" />
<hkern g1="y,yacute,ydieresis" g2="W" k="5" />
<hkern g1="y,yacute,ydieresis" g2="V" k="10" />
<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="60" />
<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring,AE" k="20" />
<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="55" />
<hkern g1="y,yacute,ydieresis" g2="X" k="35" />
<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" />
<hkern g1="X" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="30" />
<hkern g1="X" g2="t" k="30" />
<hkern g1="X" g2="w" k="40" />
<hkern g1="X" g2="v" k="35" />
<hkern g1="X" g2="y,yacute,ydieresis" k="35" />
<hkern g1="X" g2="hyphen,periodcentered,endash,emdash" k="45" />
<hkern g1="zero,nine" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="25" />
<hkern g1="seven" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="95" />
<hkern g1="x" g2="T" k="50" />
<hkern g1="x" g2="W" k="25" />
<hkern g1="x" g2="V" k="25" />
<hkern g1="x" g2="Y,Yacute,Ydieresis" k="75" />
<hkern g1="x" g2="c,d,e,g,o,q,cent,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" />
<hkern g1="parenleft,bracketleft,braceleft" g2="j" k="-110" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 71 KiB

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